2013-10-29 25 views
1

考慮以下Plunker引起的:

http://plnkr.co/edit/10Rs92cRulf9VtI3Bav6

這似乎正常工作,但如果你看看在控制檯上,你可以看到什麼是錯的。只有那張小桌子,Angular已經達到了Digest loop limit 10!

這不是像這樣的小數據集中的問題,但實際生產頁面有10個不同的過濾器,可以跨越30天以上。隨着數據的增長,$ digest循環正在變得越來越方便。

我能做些什麼來阻止它?我一直在傾注源代碼,試圖弄清楚爲什麼Table會不斷消化,即使數據沒有改變。我錯過了什麼嗎?

回答

3

過濾器實際上是用於爲視圖的數據進行按摩。

ng-repeat上的過濾器循環並創建日期範圍導致了問題。 ng-repeat每次都會調用該過濾器。時間。它。 '重複':),並且從我可以收集的內容中,只需在啓動時(或數據更改時)創建一次範圍。如果將日期範圍創建代碼從過濾器中移出,它應該更具性能。你甚至可以考慮移動範圍創建服務器端。

叉你的plunkr http://plnkr.co/edit/XTn7hjbQgV1DxcBlOYVJ

+0

神經抽菸,就是這樣!我實施了這個修復程序,現在生產代碼快了幾個數量級。 – JHixson

相關問題