Angular - 通过函数有条件地设置 ng-href
Angular - Conditionally setting ng-href through function
我有一个 angular 控制器,我想根据函数的结果有条件地设置链接
<a ng-href=" {{ setLink('contact') }}"
在控制器中
angular.module("my-app")
.controller('navController', ['$scope', '$document', function($scope, $document) {
$scope.page = $document[0].title;
$scope.home = "My app";
$scope.setLink = function(path) {
return $scope.page == $scope.home ? 'views/' + path : path;
}
}]);
如果我像这样硬核 url,我可以让它工作
<a ng-href="{{ page == home ? 'views/contact.html' : 'contact.html' }}"
有人知道如何将函数传递给 ng-href 吗?
您的 $scope.setLink 函数目前不接受任何参数,因此它不会 return 您传递给它的值。重新定义函数以接受参数。
$scope.setLink = function(path) {
return $scope.page == $scope.home ? 'views/' + path : path;
}
编辑以下评论:
您还缺少 <a>
标签上的右括号,这可能是导致问题的原因。不确定这是错字还是代码中的问题。将其更改为:
<a ng-href=" {{ setLink('contact') }}">Link Text<a/>
它应该是这样的
angular.module("myApp", [])
.controller('mController', ['$scope', '$document', function($scope, $document) {
$scope.page = $document[0].title;
$scope.home = "My app";
$scope.setLink = function(path) {
url = $scope.page == $scope.home ? 'views/' + path : path;
return url;
};
}]);
<script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.9/angular.js" data-semver="1.4.9"></script>
<div ng-app="myApp" ng-controller="mController">
<a ng-href="{{setLink('contact')}}">{{setLink('contact')}}</a>
</div>
我有一个 angular 控制器,我想根据函数的结果有条件地设置链接
<a ng-href=" {{ setLink('contact') }}"
在控制器中
angular.module("my-app")
.controller('navController', ['$scope', '$document', function($scope, $document) {
$scope.page = $document[0].title;
$scope.home = "My app";
$scope.setLink = function(path) {
return $scope.page == $scope.home ? 'views/' + path : path;
}
}]);
如果我像这样硬核 url,我可以让它工作
<a ng-href="{{ page == home ? 'views/contact.html' : 'contact.html' }}"
有人知道如何将函数传递给 ng-href 吗?
您的 $scope.setLink 函数目前不接受任何参数,因此它不会 return 您传递给它的值。重新定义函数以接受参数。
$scope.setLink = function(path) {
return $scope.page == $scope.home ? 'views/' + path : path;
}
编辑以下评论:
您还缺少 <a>
标签上的右括号,这可能是导致问题的原因。不确定这是错字还是代码中的问题。将其更改为:
<a ng-href=" {{ setLink('contact') }}">Link Text<a/>
它应该是这样的
angular.module("myApp", [])
.controller('mController', ['$scope', '$document', function($scope, $document) {
$scope.page = $document[0].title;
$scope.home = "My app";
$scope.setLink = function(path) {
url = $scope.page == $scope.home ? 'views/' + path : path;
return url;
};
}]);
<script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.9/angular.js" data-semver="1.4.9"></script>
<div ng-app="myApp" ng-controller="mController">
<a ng-href="{{setLink('contact')}}">{{setLink('contact')}}</a>
</div>