我正在创建一个带有表单输入的指令,并使用任意HTML包装该输入。
所以这个:
<input ng-model="myModel" required>
变为:
<div>
some markup here
<input ng-model="myModel" required>
</div>
从我的指令中更新模型的有效性和价值的正确方法是什么?通常情况下,我需要ngModelController
并致电$setValidity
和$setViewValue
,但是,由于ng-model
存在于我的被转换的元素上,而不是我的指令的顶级元素,所以我似乎可以'访问ngModelController
。
答案 0 :(得分:0)
我在这些场景中所做的是让你的指令本身实现ngModelController
。
点击此页面上的“实施自定义表单控件(使用ngModel)”部分:http://docs.angularjs.org/guide/forms
另一个技巧,如果你有一个表单元素,如果$ error中有错误键,你可以获得ngModelController
个实例:
angular.forEach($scope.myForm.$error, function(o, name) {
for (var i = 0; i < o.length; i++) {
o[i].$setValidity(name, false);
}
});