2015-10-18 151 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