角度 UI 提前输入字段需要触发模糊验证



我有一个 AngularUI Bootstrap Typeahead。它会在模型更改时触发以筛选值。

但是,我也有一个附加到此字段的指令,该指令应触发 onBlur。该指令搜索数据库,以根据预先输入字段的输入检查是否需要另一个字段。

如果我将 ng-model-options 更改为模糊,我会破坏预排。如果我为了使用 ng-blur 将指令更改为函数,我无法弄清楚如何处理承诺和 asyncValidators。

这是我的验证指令:

 angular.module('myApp').directive('myfieldValidation', ['$q', 'myService', function ($q, myService) {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function (scope, elem, attrs, ctrl) {
            ctrl.$asyncValidators.myfieldisvalidated = function (modelValue) {
                var defer = $q.defer();
                myService.getdetailsofField(modelValue)
                    .then(function (response) {
                       console.log(response.data);
                       if (response.data.success == false && modelValue !== undefined && modelValue !== "") {
                            scope.launchfunction();
                            defer.reject();
                        }
                        else if (response.data.success == true) {
                            scope.Name = response.data.data["Name"];
                            scope.Number = response.data.data["Number"];
                        }
                        else {
                            defer.resolve();
                        }
                    });
                return defer.promise;
            };
        }
    }
}]);

将超时添加到onBlur函数。

    function onBlurFunction(){
      $timeout(function(){ 
        //some code
      }, 300);
    };

最新更新