2

在我的指令中,我有一个带有 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
        }
    }
    }...

我想将转发器的每个元素与指令中的函数绑定,最好的方法是什么?

4

1 回答 1

3

您需要通过添加到指令定义对象来创建隔离范围并将项目传递给指令scope: { items: '='},然后将处理程序添加到每个项目:

<span ng-click='clicked(item)'>{{item.name}}<span>

在链接功能中:

scope.clicked = function(item) { .. Do thmthng with item...};

并将其用作<directive items='items' ...>

于 2013-01-27T15:16:23.957 回答