我希望我的包装指令获取元素并将事件绑定到它们。 我的标记是这样的:
<div wrapping-directive>
<div ng-repeat='item in items'></div>
</div>
我想要的是在包装指令中获取ng-repeat创建的所有项目,如下所示:
app.directive('wrappingDirective', function() {
return function(scope, element, attrs) {
var items = element.find('div'); // this returns an empty array
// if i write $(element).find('div'); it returns an empty array as well
}
});
答案 0 :(得分:1)
也许直接将指令放在物品上并给它们发生事件。
<div>
<div ng-repeat='item in items' event-directive></div>
</div>
app.directive('eventDirective', function() {
return {
link: function(scope, element, attrs) {
$(element).click( //
}
}
});
或者使用指令本身注入列表。
<div wrapping-directive>
</div>
app.directive('wrappingDirective', function() {
return {
scope: {
"items": "="
},
template:"<div ng-repeat='item in items' ng-click='doSomething(item)'></div>",
link: function(scope, element, attrs) {
$scope.doSomething = function(item){
//
}
}
}
});