AngularJS外部ng重复不在内部ng重复上注册手表
AngularJS Outer ng-repeat not to register watches on inner ng-repeat
这与我的问题有关-Angular JS ng repeat消耗更多的浏览器内存
我的问题是,我需要嵌套的ng重复,并且由于注册了更多的手表,嵌套的ng反复会消耗更多的内存。
<table>
<thead><td>Id</td><td>Name</td><td>Ratings</td></thead>
<tbody>
<tr ng-repeat="user in users | orderBy:'name' | limitTo:display_limit">
<td>{{user.id}}</td>
<td>{{user.name}}</td>
<td><div ng-repeat="item in items | orderBy:'rating' | limitTo:inner_display_limit">{{item.rating}}</div></td>
</tr>
</tbody>
</table>
在我的例子中,外部ng重复和内部ng重复操作的对象数量可以达到1000。正如@Liviu在回答中指出的那样,each of the outer ng-repeat registers watch on the inner ng-repeat
和这导致了消耗量的内存被使用。有没有一种方法可以通过编写自己的自定义指令来avoid the outer ng-repeat from registering watches on inner ones
?
我的情况是在内部和外部ng重复中,我显示最初的50个项目,在滚动时,如果滚动到达相应DOM的末尾,我将限制更新50,以便显示下一个50个项目。
非常感谢您的帮助!
您可以编写一个指令,将users
和items
都作为绑定属性(尤其是因为您的内部循环似乎独立于外部循环),然后手动嵌套两个循环,将内容添加到DOM,并为每个元素添加一个滚动侦听器。这是一种更难编码的方式,但观察者要少得多。
相关文章:
- ng映射方向备选方案
- AngularJS UI路由器不能像ng路由器那样工作
- 角度:在ng重复上切换图像
- 正在使用$location.path(.)路由ng视图
- AngularJS:ng之后,重复$scope值未按预期更新
- ng打开空字符串
- 我应该使用Ng提交还是点击表格
- ng init中的表达式无法使用ng repeat
- ng更改事件不适用于Dropdown
- ng视图外的链接重定向到ng视图内的页面
- ng应用程序使脚本无限运行
- 角度的项目列表 ng 重复,ng 单击显示全宽描述
- ng隐藏和ng显示无法正常工作
- 从ng模板访问作用域
- NG模型在提交表格时未注册
- AngularJS外部ng重复不在内部ng重复上注册手表
- AngularJS ng-init $broadcast在监听器注册之前调用
- 元素.bind只在其他ng-click:: (AngularJS + Ionic)中注册
- 我可以从ng-app外部注册一个ng-template吗?
- Angular ng-model的值没有在提交时注册