如果在執行過程中某個項目被添加到使用ngRepeat
呈現的數組中,是否重繪所有項目?添加新項目後,ngRepeat是否重新渲染所有項目?
回答
是的,所有項目都重新繪製。
事實上,這些項目也可能在其他時間重繪。
示例:更新父指令/模板中的值時。在'$ digest'循環中,Angular將評估範圍樹,這將導致受影響的子組件被重繪。
的更多信息:
感謝您的回答!這裏是問題繼續:) http://stackoverflow.com/questions/16968614/how-to-implment-a-load-more-pagination-in-angularjs-without-ng-repeat – redben
哎呀,根據這篇文章不重繪一切http://www.bennadel.com/blog/2443-Rendering-DOM-Elements-With-ngRepeat-In-AngularJS.htm – redben
這是一個好點!澄清 - 如果角度可以確定目標元素已經存在,則可以不添加新的DOM元素。 **然而,**變化的元素將被重新評估 - 這可能導致重新運行昂貴的操作。另外,對某些數據類型的「ng-repeat」將總是重繪所有元素 - 例如http://stackoverflow.com/q/14969502/317180 –
由於角1.2中,我們可以選擇 '按曲目',這將阻止中繼的重新渲染的所有項目。
例子:
ng-repeat="task in tasks track by task.id"
退房這樣的解釋:http://www.codelord.net/2014/04/15/improving-ng-repeat-performance-with-track-by/
- 1. 添加項目到數組不重新渲染
- 2. 添加新項目後,TFS項目列表未更新
- 3. ReactNative FlatList一次渲染所有項目?
- 4. Angular v1.4重複div而無需重新渲染已渲染的項目
- 5. 移除項目反應,重新渲染回報項目未定義
- 6. 添加數組項目,然後重新評估新陣列
- 7. 添加新項目後重新填充選擇菜單
- 8. TFS重新添加Visual Studio 2010項目
- 9. 重新使用現有項目核心,分支或新項目的新項目?
- 10. Ajax刪除項目後重新加載
- 11. 在構建項目之後在Netbeans項目中添加新jar
- 12. 添加新項目expandablelistview
- 13. 添加新項目的ListView
- 14. 是否有一步去更新項目所有項目的參考?
- 15. ng-repeat over angularFire重新渲染每個項目
- 16. 重新測量列表中的自定義項目渲染器
- 17. 重新渲染Nativescript的ListView時ObservableArray項目改變
- 18. 是否有提供重新加載整個項目
- 19. AppxManifest.xml在項目構建/重建後重新添加代碼行
- 20. 向現有項目添加新包名
- 21. 將現有項目添加到新項目
- 22. 添加現有的XCode項目,新項目
- 23. EF:在集合中添加新項目並通知所有其他集合添加了新項目
- 24. 如何刪除所有項目並將新項目添加到UICollectionView?
- 25. recyclerview刷新添加新項目列表
- 26. 是否有添加多個項目
- 27. Realm-更新對象數組中的所有項目而不是僅添加新項目
- 28. Android Listview項目重複添加具有不同數據的新項目
- 29. QComboBox沒有正確渲染添加項目
- 30. 並排渲染項目
權威的答案,這個問題是「是的。」,但它不能被提交,因爲SO不會讓你進入這樣的簡短的回答。 – Stewie
@Stewie它不好。從「是」開始。然後添加一個原因/解釋並鏈接到參考文獻。或者,留下「是的」。在評論中。這也沒關係。 – user2246674
你說得對(關於答案的限制),但問題並沒有問「爲什麼要重畫」,它顯然只是問「重畫」,因此,問題的格式和長度沒有表現出任何理解的傾向ngRepeat行爲背後的深層原因。這就是我的「答案」打算表明的。 – Stewie