在以下示例中:http://plnkr.co/edit/OZjg6sUgl35GIriaabQg?p=preview
我有两个指令,showCard
一个在ng-repeat中,link
函数在属性更新时被调用。 (见控制台)
另一个showCards
工作正常,但在更新属性时不会调用link
函数,但在开头只调用一次。
我想了解这两种之间的区别。
答案 0 :(得分:9)
每个元素只调用一次链接函数,因此无论何时添加新卡,ngRepeat-directive都会添加一个新的<show-card ...>
,它将调用链接函数。
如果你希望每次更改cards
时都触发一些函数,你可以在showCards链接函数的作用域上添加一个$ watch函数,如下所示:
$scope.$watch('cards',function(){
console.log('multi',$scope.cards);
},true);