你好,我的驗證指令有問題。首先,我有指令,創建輸入元素,其中我有一個是基於一些參數告訴我們,如果這calidation應該被解僱,或根本沒有指令......它看起來像這樣:Angularjs自定義驗證指令
app.directive('ngAttr', function($compile){
return {
scope:{},
link: function (scope, element, attrs){
var opts = scope.$eval(attrs.ngAttr);
if(opts.condition){
element.attr(opts.attrName, opts.condition)
}
}
};
}) ;
它增加了屬性基礎上傳遞給它的條件......如果我想有條件地添加指令我做的:
ng-attr="{condition: {{opts.validatePhone}}, attrName:'validate-phone'}"
爲創建一個輸入屬性恩我以前的指令......而問題是驗證電話指令發射了,只有當該指令被創建,一旦它doen't上輸入處理程序的反應...驗證指令的代碼是:
app.directive('validatePhone', function($compile){
return{
require: 'ngModel',
link: function(scope, element, attrs, ngModel){
function validate(val){
console.log(val)
}
scope.$watch(function() {
return ngModel.$viewValue;
}, validate);
}
};
});
不是很簡單,但console.log()在更改輸入時無法工作。
我創建了一個plunker所以它會比較容易檢查,如果有人有一個想法...... http://plnkr.co/edit/CgVCV58goFS9GKLBtRrw?p=preview
確定我記錄了validatePhone指令的範圍,它不是適用於表單輸入指令的範圍,但父範圍嗯爲什麼... –