我正在做的是将过滤器置于表(包含记录)。当我输入搜索框(使用http get方法)时,表格数据会根据搜索框进行更新。但是当我输入速度非常快时,我会在控制台500内部服务器错误中看到。
主要问题是在提交上一个响应之前我正在触发下一个请求。 结果没有问题。只需控制台显示每个http请求。如果在搜索框中快速输入,则会显示红色。
它有什么解决方案?
答案 0 :(得分:2)
你可以改变你的搜索输入:
var app = angular.module('app', []);
app.controller('TableController', function($scope, $http, $timeout) {
$http.get('yourTableData.json').then(function(result){
$scope.rows = result.data;
});
$scope.filterText = '';
var temp = '',
filterTextTimeout;
$scope.$watch('searchText', function (val) {
if (filterTextTimeout){
$timeout.cancel(filterTextTimeout);
}
temp = val;
filterTextTimeout = $timeout(function() {
$scope.filterText = temp;
$http.get($scope.filterText).then(function(result){
$scope.rows = result;
}
}, 250);
})
});
<input id="searchInput" type="search" placeholder="search field" ng-model="searchText" />
<div class="record" ng-repeat="row in rows | filter:filterText">
<span>{{row.content}}</span>
</div>