【发布时间】:2013-08-25 07:04:56
【问题描述】:
我将在 ng-repeat 项目中添加一个 contextmenu 指令。 根据条件是否为真,应应用该指令。 如何设置仅当 item.hasMenu == true 然后应用指令时的条件?
<ul ng-controller="ListViewCtrl" >
<li contextmenu ng-repeat="item in items">{{item.name}} </li>
</ul>
编辑
这似乎对我有用。首先是指令。
app.directive('menu',function(){
return {
restrict : 'A',
link : function(scope,element,attrs){
if(scope.hasMenu){
element.contextmenu({
menu:[
{title:"Remove" , "cmd" : "remove"},
{title:"Add" , "cmd" : "add"},
],
select:function(event,ui){
//alert("select " + ui.cmd + " on" + ui.target.text());
if (ui.cmd ==='remove'){
alert('Remove selected on ' + scope.item);
}
if (ui.cmd ==='add'){
alert("Add selected");
}
}
});
}
}
}
}
);
然后是html
<ul ng-controller="ListViewCtrl" >
<li menu ng-repeat="item in items">{{item.name}} </li>
</ul>
【问题讨论】:
-
你能显示上下文菜单指令模板吗?您在哪里添加上下文菜单的标记?
-
我正在尝试使用 github.com/mar10/jquery-ui-contextmenu 作为指令。到目前为止,我还没有创建指令。这个特定的插件具有基于类过滤元素的委托功能。我正在考虑将其用作过滤条件,但不确定是否可行。
-
在这种情况下你应该可以使用
ng-class="{'hasmenu': item.hasMenu}。
标签: angularjs angularjs-directive