4

当 ng-repeat 完成更新时,我在触发指令时遇到了一些 AngularJS 问题。我有三个命名数组,通过三个链接切换到,允许 ng-repeat 显示所选数组。我想在完成后触发一些代码,因为我打算设置一些元素属性供 D3 使用。

我已经尝试在我的指令中检查 scope.$last ,但这并不是在每个 ng-repeat 进程结束时调用的。如果某些数据保持不变,它可能不会将 scope.$last 设置为 true。

http://plnkr.co/edit/hwmOlI6YrgS4H1C1h7k2?p=preview

那么,当 ng-repeat 完成时,在指令中触发代码的最佳方式是什么?

4

1 回答 1

10

这是为您提供的解决方案。请注意,最后一次触发现在每次。

http://plnkr.co/edit/xV1quqzorzxliS2shrP4?p=preview

你只需要$watch$last变量,它就可以正常工作。这有助于在scope未创建但仅使用新值更新的情况下。您的指令被创建一次,如果重复变量之一只是更改值ng-repeat优化并仅更新值(而不是删除所有值并重新创建新值。)。在这种情况下,这$scope.$last将是一个更新的变量,而不是“创建”的东西。因此,您将需要$watch它。

于 2013-04-08T14:30:25.797 回答