如何使用angularjs实时创建搜索

dar*_*man 7 ajax angularjs

我想用angularjs客户端和java服务器端创建一个简单的实时搜索,我想在dom和ajax中使用与onKeyUp相似的效果,但是在角度js中,

   <div ng-app="MyModule" ng-controller="MainCtrl">                     
                <input class="form-control field span12" id="objctf" rows="4" ng-model="keywords" />
                <a href="/adminpanel?q=" class="btn btn-primary">Manage</a>
                <div>
                  <p ng-show="loading">Loading...</p>
                  <p ng-hide="loading">Response: {{response}}</p>
                  <p ng-hide="loading">writed: {{keywords}}</p>
                </div>
    </div>


var MainCtrl = function($scope, $http) {

$scope.keywords = "debut";
alert ('en mode ajax '+$scope.keywords);
$scope.response = $http.post('/api/member/getuser', { "username" : $scope.keywords });
Run Code Online (Sandbox Code Playgroud)

};

m.c*_*sey 11

添加ng-change到您的输入,如下所示:

<input class="form-control field span12" id="objctf" rows="4" ng-model="keywords" ng-change="search()" />
Run Code Online (Sandbox Code Playgroud)

创建一个方法来处理控制器上的更改:

myApp.controller('someCtrl', ['$scope', 'someService', function($scope, someService){    
    $scope.search = function(){
        someService.search($scope.keywords).then(function(response){
            $scope.response = response.data;
        });
    };

}]);
Run Code Online (Sandbox Code Playgroud)

最后,创建一个服务来调用服务器:

myApp.service('someService', ['$http', function($http){
    return {
        search: function(keywords){
            return $http.post('/api/member/getuser', { "username" : keywords });
        }
    }
}]);
Run Code Online (Sandbox Code Playgroud)

以这种方式处理事物,您将获得一种可重复使用的搜索方法,如果需要,其结果可以通过路径保留.