0
我想提出一個自定義的驗證指令,但每次$範圍。$表更新ngModel如果被用戶爲什麼慣於我的NG-髒更新到我的指令
console.log('value has changed', value);
感動不更新顯示更新
但
ngModel.$touched
和ngModel.$dirty
永遠不會改變他們都是一樣的,我需要以某種方式導入到訪問和使用這些指令內
HTML
<div validation-directive="validation-directive"
ng-model="company.fax_number">
<input type="text" ng-model="company.fax_number"/>
<span ng-hide="!validation.status">{{validation.status}}</span>
</div>
的JavaScript
module.exports = [
'$log', function($log) {
return {
restrict: 'A',
require: 'ngModel',
link: function($scope, $element, $attr, $ctrl, ngModel) {
$scope.$watch($attr.ngModel, function(value) {
console.log('value has changed', value);
if (ngModel.$dirty) {
console.log('dirty', value);
}
if (ngModel.$touched) {
console.log('touched', value);
}
});
);
},
scope: true
};
}
];
對不起!如果你想從指令中丟失捕獲焦點,試試這個: $ element.on('blur',function(){ // aweasome things }); –
我在watch函數中添加了console.log($ attr.ngModel。$ dirty),每當我編輯它記錄的字段'undefined'時,這可能是因爲該指令不在輸入字段本身上?是否有一個解決方法,將保持我的指令在div而不是在輸入標記 –
是!,爲什麼不使用? –