0

内部の ng-repeat にオプションとオプションをnested ng-repeat使用する次のコードがあります。filterlimitTo

http://jsfiddle.net/WqSGR/27/

ここでは、セット内のアイテムが非常に少なくなっています。しかし、私の実際のケースでは、外側ループと内側ループの両方に約 1000 個のアイテムがあります。しかし、巨大なセットに ng-repeat を使用すると問題に直面します - Angular JS ng-repeat はより多くのブラウザー メモリを消費します

したがって、メモリ使用量を大幅に削減する独自の ng-repeat がありました。

http://jsfiddle.net/WqSGR/28/

しかし、カスタム ng-repeat ディレクティブで、上記の ng-repeat に似たfilterandオプションを使用できますか?limitTo

注: Inner ng-repeat は常に 5 に制限されるとは限りませんwatch

どんな助けでも大歓迎です!

私が試した最も近いものは次のとおりです。 http://jsfiddle.net/WqSGR/29/

searchTextしかし、フィルターが機能するように時計を適用する方法を手伝ってくれる人はいますか?

4

1 に答える 1

1

はい、リンク関数内でフィルターを使用できます。

myApp.directive('myRepeater', function(filterFilter, limitToFilter) {
  return {
    restrict: 'A',        
    link: function(scope, element, attrs) {
      var myTemplate = "<div>{{rating}}</div>";
      var filteredItems = filterFilter(scope.items, scope.SearchText);
      var limitedItems = limitToFilter(filteredItems, 5);
      angular.forEach(limitedItems, function(item){                
        var text = myTemplate.replace("{{rating}}",item.rating);
        element.append(text);
      });
    }
  };
});

次に、$watchers を作成して変更を監視し、それに応じてリストを更新することで、そこから続行しscope.SearchTextますscope.NumberOfItems

于 2013-07-06T13:06:32.227 に答える