2015-10-06 45 views
2

AngularJS 1.2.28Angularjs destory /刪除巨大陣列和免費memroy

我有3個選項卡的每個顯示不同類型的值,所有的對象都在存儲器中。我使用ng-repeat和很多過濾器來迭代和顯示如下所示的清單,slicedOff正在被動地創建是導致memeory泄漏? 我有3個大集的集合,我正在展示。任何方式,如果我點擊第二個標籤免費destory /刪除slicedOff和釋放內存?

<tr ng-repeat="off in slicedOff = (filteredOffers | filter:offerViewState.filterOptions.vodFilterText | filter:{offerType:'vod', offerStatus: offerViewState.filterOptions.vodOfferStatusFilter, linearInfo: offerViewState.filterOptions.linearDetailFilter}) | orderBy:offerViewState.filterOptions.sortBy:offerViewState.filterOptions.sortByReverse | startFrom:(tableParams.currentPage-1)*tableParams.itemsPerPage | limitTo:tableParams.itemsPerPage"> 
</tr> 

我注意到,如果我叫剪接,並嘗試刪除所有項目甚至佔用了過多的內存 幫助表示讚賞

+1

更好地做那些控制器或角度的多個過濾器會運行很多次。但我仍然認爲這是大量的過濾器,可以用自定義函數來重寫,從而將這些過濾掉。 – YOU

+0

考慮也升級到'1.3'或更高,其推出的單向綁定 – charlietfl

回答

0

我覺得你越來越throuble與角手錶。對於每個變量或函數,角度都會創建大量的手錶。

嘗試使用這個LIB https://github.com/Pasvaz/bindonce,它會創建一個只爲你的迭代器的手錶。有很多例子,你應該嘗試解決這個問題。

+0

我已經更新了我的angularjs版本1.4.4和bindonce是默認的功能,您可以前綴bindonece爲::的元素 –

+0

外觀極好,這是事實。我很高興這是有效的 –