【发布时间】:2015-05-13 21:42:32
【问题描述】:
我正在研究以下验证指令,在 this answer 中向我建议:
MyBigAngularApp.directive("bkNgValidation", function ($compile) {
return {
priority: 10000,
terminal: true,
link: function (scope, element, attrs) {
var validationType = attrs.bkNgValidation;
window["addValidationFor_" + validationType](element);
// prevent infinite loop
element.removeAttr("bk-ng-validation");
$compile(element)(scope);
}
};
});
然后,当我将此指令应用于 html 元素时,以bk-ng-validation="phoneNumber" 的形式,我的指令会调用此函数:
function addValidationFor_phoneNumber(element) {
element.attr("ng-pattern", "/^[0-9]+$/");
element.attr("ng-minlength", 5);
element.attr("ng-maxlength", 8);
alert("yeah baby");
}
这个addValidationFor_phoneNumber 目前在全局命名空间中,只是为了我的概念证明,但我希望可以使用一个显示模块来组织可能成为相当多的验证功能的东西。还是因为我在 Angular 内部工作,所以我应该遵循其他一些模式?我怀疑我可以做一些事情,比如为显示模块声明一个常量并将其注入指令中,但我想在走错路之前先问这个问题。
【问题讨论】:
标签: javascript angularjs revealing-module-pattern