需要自定义验证触发

时间:2013-12-09 14:30:17

标签: angularjs angularjs-directive

我有以下指令

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元素会导致错误,但不会说什么)

2 个答案:

答案 0 :(得分:0)

愿你有小提琴或傻瓜?

您如何看待所需的错误消息? 可能你的条件是显示它是错误的,你的指示有效吗?​​!

你的指令似乎很好。

答案 1 :(得分:0)

问题是,在我的setValidity调用中,我使用的是一个角色使用的关键字,根据其规则等同于有效

我还能找到一个很好的明确规则列表,默认情况下附带角度