Я просматриваю большие данные, используя AngularJS
только когда я печатаю> 3 символа ввода.
var app = angular.module('test_table', []);
app.controller('main_control',function($scope, $http){
$scope.inputChange = function(){
if($scope.search.length > 3){
$http.get("http://localhost:7001/load").success(function(data){
$scope.loaded=data;
});
}
if($scope.search.length < 4){
$http.get("http://localhost:7001/load").success(function(data){
$scope.loaded="";
});
}
}
});
Код HTML:
<input type="search" class="inputsearchform" ng-model="search" ng-change="inputChange()"/>
...
<tr class="rowR" ng-repeat="data in loaded | filter:{song_name: search}">
У меня есть проблема. Когда я печатаю более 3 символов, а затем удаляю все, используя кнопку ввода по умолчанию, все данные загружаются на страницу, и это вызывает большую задержку. Как с этим бороться?
Вы можете добавить следующее:
if($scope.search.length == 0){
$scope.loaded="";
}
или создать функцию, вызванную кнопкой удаления:
$scope.delete = function(){
$scope.loaded="";
}
PS: вы не должны вызывать службу, если вы собираетесь назначить пустую переменную:
if($scope.search.length < 4){
$http.get("http://localhost:7001/load").success(function(data){
$scope.loaded="";
});
}
должно быть действительно:
if($scope.search.length < 4){
$scope.loaded="";
}
PS 2: if($scope.search.length < 4)
самом деле не имеет смысла либо потому, что если есть 3 символа - это утверждение if будет удовлетворено, так как ускорено @aw04
Чтобы избежать задержки, вам придется ограничить данные, которые вы limitTo
. Для этого вы можете использовать limitTo
углового фильтра. Установите limitTo для любого значения, которое вы хотите загрузить по умолчанию.