在我的指令中,我有一个带有ng-repeat的模板,
...return {
template:'<div id="wrapper"><ul><li ng-repeat="item in items">{{item.name}}</li></ul></div>',
compile:function (tElement, tAttrs) {
return function (scope, iElement, iAttrs) {
//bind item mouse event to a closure function
}
}
}...
我想将转发器的每个元素与我的指令中的函数绑定,最好的方法是什么?
答案 0 :(得分:3)
您需要通过将scope: { items: '='}
添加到指令定义对象来创建隔离范围并将项目传递给指令,然后为每个项目添加处理程序:
<span ng-click='clicked(item)'>{{item.name}}<span>
在链接功能中:
scope.clicked = function(item) { .. Do thmthng with item...};
并将其用作<directive items='items' ...>