【发布时间】:2014-12-14 07:34:41
【问题描述】:
我有一个输入,可以在更改时过滤 ng-repeat 列表。重复包含大量数据,需要几秒钟来过滤所有内容。我希望他们在开始过滤过程之前有 0.5 秒的延迟。 产生这种延迟的正确方法是什么?
输入
<input ng-model="xyz" ng-change="FilterByName()" />
重复
<div ng-repeat"foo in bar">
<p>{{foo.bar}}</p>
</div>
过滤功能
$scope.FilterByName = function () {
//Filtering Stuff Here
});
谢谢
【问题讨论】:
-
只需使用
$timeout500 毫秒。$scope.FilterByName = function () { $timeout(_filterByName , 500) -
@PSL 函数在哪里?我只希望搜索执行一次。如果我只是抵消它,它只会造成更大的延迟并进行多次搜索。
-
是的,在你的功能中。上一条评论有一个sn-p。如果一个超时正在进行并且触发了另一个更改,您可以使用
$timeout.cancel(timeoutpromise)。 -
@PSL 谢谢你的工作就像一个魅力!
标签: angularjs angularjs-directive angularjs-ng-repeat