当 ng-repeat 完成更新时,我在触发指令时遇到了一些 AngularJS 问题。我有三个命名数组,通过三个链接切换到,允许 ng-repeat 显示选定的数组。我想在完成后关闭一些代码,因为我打算设置一些元素属性供 D3 使用。
我试过在我的指令中检查 scope.$last ,但这不是在每个 ng-repeat 进程结束时调用的。如果某些数据保持不变,则可能不会将 scope.$last 设置为 true。
http://plnkr.co/edit/hwmOlI6YrgS4H1C1h7k2?p=preview
那么,当 ng-repeat 完成时,在指令中触发代码的最佳方法是什么?
最佳答案
这是为您提供的解决方案。请注意, last 现在每次都触发。
http://plnkr.co/edit/xV1quqzorzxliS2shrP4?p=preview
您只需要$watch
$ last
变量,它会正常工作。这有助于在 scope
的情况下不是创建而是用新值更新。您的指令创建一次,如果重复变量之一只是更改值 ng-repeat
优化并仅更新值(而不是删除所有值并重新创建新值。)。在这种情况下,$scope.$last
将是一个更新的变量,而不是“创建”的东西。所以,你需要$watch
它。
关于angularjs - ngRepeat 更新后的指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15881362/