我有一个角度控制器,我想根据功能的结果有条件地设置链接
<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;
}
}]);
如果我像这样强调网址
,我可以让它发挥作用<a ng-href="{{ page == home ? 'views/contact.html' : 'contact.html' }}"
有谁知道如何将函数传递给ng-href?
答案 0 :(得分:3)
您的$ scope.setLink函数当前不接受任何参数,因此它不会返回您传递给它的值。重新定义函数以接受参数。
$scope.setLink = function(path) {
return $scope.page == $scope.home ? 'views/' + path : path;
}
修改以下评论:
您还错过了<a>
标记上的结束括号,这可能会导致问题。不确定这是否是代码中的拼写错误或问题。将其更改为:
<a ng-href=" {{ setLink('contact') }}">Link Text<a/>
答案 1 :(得分:1)
这是它应该如何运作
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>