我正在尝试在ng-repeat循环中使用自定义指令。没有我的自定义指令,循环工作正常:显示所有项目。但是如果我在ng-repeat上使用我的指令,那么循环中的所有项似乎都是未定义的或为空,至少不会打印。
这是一个简化的例子:
angular.module('myTest', []).directive('makecool', function(){
return {
scope: {
'flippity': '&'
},
link: function(scope, element){
element.append(", Yo!");
// do something with flippity
}
};
});
angular.module('myApp',['myTest']).controller('ListStuff', function($scope){
$scope.list = ["hi","there","this","be","a","list"];
});
它似乎与隔离范围有关,因为没有
scope: {
'flippity': '&'
},
它隔离了它正常工作的范围(http://jsfiddle.net/vtH64/15/),尽管我无法访问“flippity”,这是我在现实世界的应用程序中所需要的。
我在这里做错了什么?
答案 0 :(得分:0)
如果要包含隔离范围,请尝试使用$ parent
<li ng-repeat="item in list" flippity="flop" makeCool>{{$parent.item}}</li>
答案 1 :(得分:0)
link
方法将元素的属性作为第三个参数:
link: function(scope, element , attributes){
因此,您可以非常轻松地获取flippity
:attrs["flippity"]