我正在尝试创建一个AngularJS自定义指令,如果它在一个变量中,它会隐藏一个元素。
例如,我有三个从指令生成的链接:
我想隐藏“隐藏”链接。
以下是我的观点:
<ul>
<menu link="Home"></menu>
<menu link="About"></menu>
<menu link="Hide"></menu>
</ul>
...指令:
app.directive('menu', function() {
return {
scope: {
link: "@"
},
template: '<li ng-hide="hideMenu(link)">{{link}}</li>',
controller: function($scope) {
var hideLink = 'Hide';
function hideMenu(link) {
if (hideLink == link) {
return true;
}
}
}
};
});
谢谢!
答案 0 :(得分:4)
要使您的功能在模板中可用,它必须在您的范围内。这是更新后的代码:
app.directive('menu', function() {
return {
scope: {
link: "@"
},
template: '<li ng-hide="hideMenu(link)">{{link}}</li>',
controller: function($scope) {
var hideLink = 'Hide';
$scope.hideMenu = function(link) {
if (hideLink == link) {
return true;
}
}
}
};
});
答案 1 :(得分:1)
在指令$scope.hideMenu = hideMenu;
app.directive('menu', function() {
return {
scope: {
link: "@"
},
template: '<li ng-hide="hideMenu(link)">{{link}}</li>',
controller: function($scope) {
var hideLink = 'Hide';
function hideMenu(link) {
if (hideLink == link) {
return true;
}
}
$scope.hideMenu = hideMenu;
}
};
});