2013-12-09 223 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?

您如何看到所需的错误信息? 可能你的情况显示它只是错误的,你的指示是否有效?

你的指令看起来不错。