2013-12-09 248 views
0

我有一個字段,也需要自定義驗證

以下指令

app.directive('postcode', function() { 
     return { 
      require: 'ngModel', 
      link: function(scope, elm, attrs, ctrl) { 
       ctrl.$parsers.unshift(function (val) { 
        var regex = /^(([gG][iI][rR] {0,}0[aA]{2})|((([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y]?[0-9][0-9]?)|(([a-pr-uwyzA-PR-UWYZ][0-9][a-hjkstuwA-HJKSTUW])|([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y][0-9][abehmnprv-yABEHMNPRV-Y]))) {0,}[0-9][abd-hjlnp-uw-zABD-HJLNP-UW-Z]{2}))$/, 
         valid = regex.test(val); 

        if(valid) { 
         ctrl.$setValidity('postcode', true); 
         return val; 
        } 
        else { 
         ctrl.$setValidity('postcode', false); 
         return undefined; 
        } 
       }); 
      } 
     }; 
    }); 

雖然所需的位無縫工作(耶!) 作品之一,也是郵政編碼顯示所需的錯誤信息以及無效

(由於某種原因,複製/粘貼DOM元素會導致一個錯誤,但犯規說什麼)

回答

0

的問題是,在我的setValidity電話我是使用角度使用其已經按照它的規則是等同於有效

關鍵字,我仍未能找到的明確規則,一個漂亮的列表在默認情況下以角度出貨

0

可能你有小提琴或plunkr?

您如何看到所需的錯誤信息? 可能你的情況顯示它只是錯誤的,你的指示是否有效?

你的指令看起來不錯。