2015-10-18 153 views
0

我有一个关于在AngularJS验证的几个问题AngularJS验证问题

问题1:

我如何实现AngularJS控制器视图

香草以下js代码

document.getElementById('InputId).value.length 

我试图在AngularJS

$scope.myForm.InputngModelName.length 

第2期

下面我有一个directive是验证电子邮件

我如何把它从我的控制器?

以下是该指令

angular.module('myValidator',[]) 
    .directive('myValidator',function(){ 
      return{ 
       restrict: 'A', 
       require: "ngModel", 
       link: function(scope, elm, attrs, ctrl){ 
        switch (attrs.myValidator){ 
         case 'email': 
          var regex=/^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/; 
          break; 
        } 
        ctrl.$parsers.unshift(function(viewValue){ 
         if(regex.test(viewValue)){ 
          ctrl.$setValidity('myValidator',true); 
         } 
         else{ 
          ctrl.$setValidity('myValidator',false); 
         } 
         return viewValue; 
        }); 
       } 
      }; 
     });  

回答

0

我会考虑使用角度验证器,这是非常精简,你可以轻松地添加自定义的验证方法。它还包括一个电子邮件验证器。

Angular-Validator是一个易于使用,功能强大且轻量级的AngularJS验证指令。

<input type = "email" 
          name = "emailAddress" 
          class = "form-control" 
          ng-model = "form.emailAddress" 
          invalid-message="'Thats not a real email address'" 
          required-message="'Yo this is required'" 
          validate-on="dirty" 
          required> 

https://github.com/turinggroup/angular-validator http://plnkr.co/edit/XbDYKrM2QUf8g1ubTHma?p=preview

+0

看起来很有趣,我在 “bowering” 现在,可以在'验证上= “Globalvar ==真”'? – user3052526

+0

是的,你应该可以设置validate-on =“customFunction”等等。它倾斜了我的验证代码,包括HTML和控制器。使我的验证生活非常简单。 – Enkode

+0

更正:如果您阅读文档,validate-on只能有模糊或脏污。你会想做一个自定义的验证方法,并在那里添加你的依赖关系响应。 – Enkode