用户名检查返回对象指令

时间:2015-06-19 06:35:06

标签: javascript angularjs angularjs-directive

我只是尝试实现usercheck指令,该指令通过成功用户检查返回用户对象。但是一旦完整的用户检查我做了什么错误,我就无法将返回对象绑定到模型。我的指示如下

app.directive('usernameAvailable', function($timeout, $q, $http) {
  return {
    restrict: 'AE',
    require: 'ngModel',
    link: function(scope, elm, attr, model) { 
      model.$asyncValidators.usernameExists = function() { 
        return $http.get('backend.json').then(function(res){+
          $timeout(function(){
            var data = res.data; 
            model.$setValidity('usernameExists', !!data.valid);
            model.userModel = res.user;
            scope.$apply();
          }, 1000);
        }); 


      };
    }
  } 
});

以下是plunker

由于

1 个答案:

答案 0 :(得分:1)

我修复了你的Plunker。希望这有帮助...我使用.success而不是.then,并将用户对象写入范围。

备注:在这个例子中它工作正常,但是你用自己的范围编写了一个指令,用户对象是不可见的。

link: function(scope, elm, attr, modelController) {
  modelController.$asyncValidators.usernameExists = function() {
    return $http.get('backend.json').success(function(data) {
      $timeout(function() {
        modelController.$setValidity('usernameExists', !!data.valid);
        scope.user = data.user;
      }, 1000);
    });
  };
}