我使用ngRepeat
指令渲染大数据列表,并且$timeout
使用ng-repeat
执行{{1}}后的函数(如果已完成)。它运作良好,但这是一种正确的方式吗?
我的意思是它适用于所有情况吗?
答案 0 :(得分:3)
你可以尝试$last
(如果重复元素在迭代器中是最后一个,则$ last = true)。
<div ng-repeat="item in data">
<span ng-if="$last === true" ng-init="doSomething()"></span>
</div>
答案 1 :(得分:1)
我无法看到你的代码,但我假设你只是将超时设置为一个等待的任意数字,这意味着你基本上只是希望ng-repeat完成得比这更快。
一个合适的解决方案是使用ng-repeat项目的$ last特殊属性,当渲染ng-repeat项目列表的最后一项时,这是正确的。当它成立时,执行你的回调表达式。
可以在此处找到使用自定义指令的复杂解决方案,例如: http://www.bennadel.com/blog/2592-hooking-into-the-complete-event-of-an-ngrepeat-loop-in-angularjs.htm