如何在输入中键入内容时加载数据

时间:2016-03-23 23:43:00

标签: javascript jquery angularjs

我有:

<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个字符后搜索并显示结果。我该怎么办?

3 个答案:

答案 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; 
            });
        }
    }       
});