2013-07-04 47 views
0

今天我想知道如何優化過濾器的執行速度。如何使用angularJS優化ng-repeat過濾器?

我的目標,我NG-重複追加一個列表可以有1000或10000的長度,但它開始到RAM時,我只拿到100的長度...

如果任何人有一招祝愉快地接受它!謝謝 !

+1

沒有更多的具體信息很難提供幫助。但是你有沒有考慮過某種分頁方式? – Andy

+0

過濾器有什麼作用? – marko

回答

1

你試過類似的東西嗎?

<input ng-model='filterby' /> 
<div ng-repeat='book in books|filter:filterby|limitTo:50' ng-show='filterby'> 
+0

這是thx interresting。 但爲什麼ng顯示? – KeizerBridge

+0

ng-show將有助於顯示搜索活動時的數據(意味着當我們在搜索框中輸入內容時)。否則它將處於隱藏狀態。你能否接受答案,以便有人可以找出答案 – anilCSE

0

是的,我知道。實際上,filter屬性在ng-repeat屬性中設置並鏈接到輸入。 在我的情況下輸入文字。例如,當用戶在該輸入中鍵入文本時,它將foreach我的對象,並將我的元素追加到由過濾器返回的新對象的長度的函數中。 所以如果你有一個ng-repeat附加的列表,所以你有1000

  • {{object.infos}}
  • 並且你在輸入'test'中鍵入,過濾器搜索'test'是否匹配{{object。 infos}}如果是,它返回所有匹配的對象,並重新例如,如果我有一個長度爲500,500
  • {{object.infos}}
  • 返回的對象。因此每次在輸入文本中鍵入某個東西時,它都會刪除並追加任何元素。所以它真的是你的瀏覽器的核心...

    <div ng-repeat="test in tests | filter:search"></div> 
    <input type="text" ng-model="search" /> 
    
    appController($scope, $window) { 
        $scope.tests = {0:{infos...},1:{infos:...},...,1000:{infos...}} 
    }