当我在控制器中更新我的$scope时
$scope.item = "Hello";
然后,项目的整个DOM似乎被删除,然后再次添加.这似乎很好,但如果我有一个项目列表,并做
$scope.items = Resource.query();
要更新所有项目,然后删除所有项目的DOM,然后重新添加,这看起来很破碎和笨拙 – 无论如何,当$scope更新时,这个删除然后添加DOM元素?
如果$scope.items及其子项在几个ng-repeat语句中使用,则会更加恼火,因为所有这些ng-repeat部分都被删除然后重新添加.
编辑
我已经读过这个,觉得这是问题https://www.binpress.com/tutorial/speeding-up-angular-js-with-simple-optimizations/135
我在$digest上有太多的“东西”只是很慢.我正在研究一个例子,但同时想象一下这个数据的尝试
{ { id: 1,name: "name1",something: { id: 10,name: "something10" else: { id: 15,name: "else15" } } } }
但是有20个这样的对象都有嵌套对象 – 这似乎是个问题.有很多对象被解析并绑定到DOM上,$观察者只花了很长时间来讨论所有事情.
编辑2
我做了这个演示,也许我使用资源错了? http://plnkr.co/edit/QOickL0Dyi8jmuvG9mzN
但是这些物品每5秒更换一次,更换后它们全部消失然后重新出现.这是我遇到的问题.
解决方法
如果你看看$资源
documentation,你会看到正确的数据操作方式 – 使用回调函数
代替
$scope.items = Resource.query();
尝试
Resource.query(function(data) { $scope.items = data; });