【发布时间】:2013-02-24 14:54:34
【问题描述】:
我有一个似乎无法解决的性能问题。我有一个即时搜索,但它有点滞后,因为它开始搜索每个 keyup()。
JS:
var App = angular.module('App', []);
App.controller('DisplayController', function($scope, $http) {
$http.get('data.json').then(function(result){
$scope.entries = result.data;
});
});
HTML:
<input id="searchText" type="search" placeholder="live search..." ng-model="searchText" />
<div class="entry" ng-repeat="entry in entries | filter:searchText">
<span>{{entry.content}}</span>
</div>
JSON 数据甚至没有那么大,只有 300KB,我认为我需要完成的是将搜索延迟约 1 秒以等待用户完成输入,而不是执行操作每次击键。 AngularJS 在内部执行此操作,在阅读了此处的文档和其他主题后,我找不到具体的答案。
如果我能延迟即时搜索,我将不胜感激。
【问题讨论】:
-
您在 init 应用程序上获得了所有 json...然后您的搜索过滤器在第二次输入时没有获得数据...它正在过滤已经存在的模型。我说的对吗?
-
下面的答案成功了吗?如果是这样,请接受答案。如果没有,请告诉我,我会进一步澄清。
-
嗨,杰森,感谢您的回复。我试图玩弄你的代码,但没有运气,搜索对我来说完全停止工作。
-
没关系,这是我的错,我忽略了一些东西。您的解决方案确实有效。谢谢你:)
-
在这里查看这个答案,它提供了一个指令,允许您延迟 ng-change:stackoverflow.com/questions/21121460/…
标签: search filter angularjs timeout delay