Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 正在监视ngModel中的更改。$在angular指令中无效_Angularjs_Angularjs Directive - Fatal编程技术网

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){ ...