优化angularjs搜索过滤器

时间:2014-08-19 06:08:59

标签: javascript html html5 angularjs

页面中有近2000行。我使用AngularJS过滤器来搜索包含类型字符串的一些项目。问题是在输入控件中输入一个字符时效率很差。 你们有很好的想法如何改进这个过滤器? 这是搜索代码:

输入框:

<input class="searchText ng-cloak" ng-model="searchText.ValueName" placeholder="Search Value" />
表格中的

重复:

<tr ng-repeat="registry in currentSettings | filter:searchText" ....

字符串filter:searchText用于过滤。

2 个答案:

答案 0 :(得分:1)

瓶颈可能是添加和删除DOM中的元素。通过使用css隐藏元素来避免这种情况。而不是过滤ng-repeat,使用ng-show:

<li ng-repeat="registry in currentSettings" ng-show="([registry] | filter:searchText).length > 0">

http://php.quicoto.com/use-ng-show-filtering-data-angularjs/

还有virtual ng-repeat plugin,它只添加将要呈现的dom节点以获得更好的性能

答案 1 :(得分:0)

我还建议在转发器中使用track by。它将防止不必要的元素移除和重新插入,并在某些情况下导致速度的显着提高。只要确保你跟踪一些独特的财产。