Angularjs 正在监视ngModel中的更改。$在angular指令中无效
我有一个指令,用自定义输入控件替换Angularjs 正在监视ngModel中的更改。$在angular指令中无效,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个指令,用自定义输入控件替换select元素。以下是它的简化版本: angular.module('MyModule', []).directive('reflector', function($timeout) { return { require: 'ngModel', link: function(scope, element, attrs, ngModel) { element.insertAfter('<inp
select
元素。以下是它的简化版本:
angular.module('MyModule', []).directive('reflector', function($timeout) {
return {
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
element.insertAfter('<input type=text id="new-' + attrs.id + '" />');
element.hide()
}
};
});
angular.module('MyModule',[])指令('reflector',函数($timeout){
返回{
要求:'ngModel',
链接:功能(范围、元素、属性、模型){
元素。插入后面(“”);
元素。隐藏()
}
};
});
我希望此自定义输入控件反映原始select元素的有效/无效状态,即在基元素无效时添加ng invalid类
是否有任何方法可以监视对
ngModel.$invalid
的更改?我知道我可以做scope.$watch(attrs.ngModel,…)
,但这会给我模型数据,而不是表单元素的有效/无效状态。您可以从以下位置查看所有属性:
并且ngModel
将以下css类设置到元素上:ng valid、ng invalid、ng dirty、ng pristine
$scope.$watch(function(){return ngModel.$invalid;},function(newVal,oldVal){ ...