我有:
<input type="search" name="" placeholder="Search" class="inputsearchform" ng-model="search"/>
<tr class="rowR" ng-repeat="data in loaded | filter:{song_name: search}">
只有在输入中键入4个或更多字符时才可以加载数据吗?我写了inputChange
函数,但我不知道如何从tr
的属性调用它。
app.controller('main_control',function($scope, $http){
$scope.inputChange = function(){
if($(".inputsearchform").val().length > 3){
$http.get("http://localhost:7001/load").success(function(data){
$scope.loaded=data;
});
}
}
});
或者,当页面加载时加载数据但不向用户显示它是更好的解决方案,因为它有10000个项目。然后在键入4个字符后搜索并显示结果。我该怎么办?
答案 0 :(得分:5)
您需要使用ngChange:https://docs.angularjs.org/api/ng/directive/ngChange
您可以将其添加到输入
<input ng-change="inputChange()" ... />
您还可以更改inputChange函数以检查$ scope.search.length而不是使用$(“。inputsearchform”)。val()。length。
if($scope.search.length > 3 && !$scope.loaded){...
答案 1 :(得分:0)
将ng-change="inputChange()"
添加到输入中。
答案 2 :(得分:0)
请关注马修的回答
删除jquery并使用angular。
app.controller('main_control',function($scope, $http){
$scope.inputChange = function(){
if($scope.search.length > 4){
$http.get("http://localhost:7001/load").success(function(data){
$scope.loaded=data;
});
}
}
});