当ng-repeat完成更新时,我在解决指令时遇到了一些AngularJS问题。我有三个命名数组,通过三个链接切换,允许通过ng-repeat显示所选数组。我想在完成后解除一些代码,因为我打算为D3设置一些元素属性。
我已经尝试检查范围。$ last在我的指令中,但是在每个ng-repeat过程结束时都没有调用。如果某些数据保持不变,则可能无法设置范围。$ last to true。
http://plnkr.co/edit/hwmOlI6YrgS4H1C1h7k2?p=preview
那么,当ng-repeat完成时,在指令中触发代码的最佳方法是什么?
答案 0 :(得分:10)
这是一个适合您的解决方案。请注意,最后一次触发每次。
http://plnkr.co/edit/xV1quqzorzxliS2shrP4?p=preview
您只需要$watch
$ last
变量,它就能正常工作。这有助于在未创建scope
但仅使用新值更新的情况下。您的指令会被创建一次,如果其中一个重复变量只是更改值ng-repeat
,则优化并只更新值(而不是删除所有值并重新创建新值)。在这种情况下,$scope.$last
将是一个更新的变量,而不是“创建”的东西。因此,您需要$watch
它。