使用$ timeout延迟$ watch

时间:2014-12-15 11:03:46

标签: angularjs

我有一个Typehead文本框作为'Model.Property'。所以我需要在用户输入时将ajax调用延迟到服务器。我已经使用了下面的代码片段。但是它仍然执行已经被删除的字符数打字。我怎么能避免它?

JS

  $scope.$watch('Model.Property', function () {

                $timeout(function() {
                    $scope.MyFunction();
                }, 5000);

        });

HTML

<div pr-form-input name="MyReson" model="Model.Property" isrequired="true"></div>

1 个答案:

答案 0 :(得分:1)

该方法是在itme模糊时更新服务器以进行更改:

您的HTML标记:

<div pr-form-input name="Cause" ng-change="updateServer()" ng-model-options="{ debounce: 1000 }" model="Model.Property" isrequired="true"></div>

在你的控制器内:

$scope.updateServer = function() {
    MyServerService.update($scope.Model.Property)
}

阐释:

  

ng-change - 在模型更改时触发功能的指令

     

ng-model-options - 用于配置模型观察更改的指令(配置为on-blur)

对于Ajs 1.2.X 用户: ngModelOptions for AngularJS 1.2