【发布时间】:2015-06-28 13:02:44
【问题描述】:
我有以下代表搜索字段的 html:
<input ng-model-options="{ debounce: 500 }" type="text" ng-model="name">
还有下面的js:
$scope.$watch('name', function(newVal, oldVal) {
if(newVal != oldVal) {
$scope.pageChanged($scope.sort, $scope.name, $scope.sortDirection);
}
});
现在,我的 pageChanged 函数对我的服务器进行 REST 调用,并根据排序和搜索信息(“名称”)返回一个实体列表。假设我的用户想要搜索“Tom”。我想避免我的应用程序进行三个休息调用(name="T"、name="To"、name="Tom")。
我尝试使用 debounce 执行此操作,但似乎 watch 不适用于 debounce,所以我想知道用最少的代码实现此功能的最佳方法是什么?
【问题讨论】:
-
您是否尝试过仅在 3 个或更多字符时才拨打电话?
-
你确定你使用的是 angular 1.3+
-
你的代码没问题,只要确保 Angular 是 1.3.x 版本 plnkr.co/edit/ttIgZCxtgJq5DSmrgCl8?p=preview
-
啊,我的错,我有一个较旧的凉亭配置,其中角度设置为 1.2。将其设置为 1.3 并更新使我的代码工作。您能否将其移至答案以便我标记它?
标签: javascript angularjs watch