[英]Angular Directive to add a Directive
我正在嘗試為ng-minlength和ng-maxlength指令創建指令包裝。 這些包裝程序偽指令的目的是使用最大和最小長度填充輸入模型,以便能夠創建自定義驗證消息。 我的指令看起來像這樣
var directive = angular.module('selfservice.directives', []).directive
directive('minlength', [function() {
return {
restrict: 'A',
require: 'ngModel',
compile: function compile(tElement, tAttrs, transclude) {
return {
pre: function preLink(scope, elem, attrs) {
scope.minlength = attrs['minlength'];
elem.attr('ng-minlength', scope.minlength);
elem.removeAttr('minlength');
}
}
}
}
}])
都可以使用添加的ng-minlength
屬性正確編譯,但是ng-minlength
指令似乎不會以通常的方式影響字段的有效性。 我將功能專門添加到預編譯中,以便可以在常規摘要循環中將所有功能一起編譯,就好像它從一開始就在那兒一樣,但這似乎行不通。 有人可以幫助我了解如何實現這一目標嗎?
如上所述:
我確實通過將編譯服務添加到post link函數來使其工作
僅當不存在ng-指令並將其添加並設置attrs。$ observe('minLength')以在值更改時更新ng-minlength屬性時,才重新編譯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.