喜欢在 this question ,我要加.error
在表单域的父级 .control-group
当scope.$invalid
是真的。
但是,像 ng-class="{ error: formName.fieldModel.$invalid }"
一样对表单名称进行硬编码意味着我不能以不同的形式重用它,而且我不想到处重复这个声明。
我认为看起来像这样的指令可以工作:
<div class="control-group" error-on="model1, model2">
<input ng-model="model1">
<input ng-model="model2">
</div>
所以当
model1
或 model2
无效,.control-group
获取 .error
添加。My attempt here .给定模型名称,是否可以从指令访问模型?
如果有更好的方法,我也很想听听。
最佳答案
我不认为为这个用例编写自定义指令是必要的,因为 ng-form
directive正是为这些情况而创建的。从指令的文档中:
It is useful to nest forms, for example if the validity of a sub-group of controls needs to be determined.
以您的代码为例,您会这样写:
<div class="control-group" ng-class="{ error: myControlGroup1.$invalid }>
<ng-form name="myControlGroup1">
<input ng-model="model1">
<input ng-model="model2">
</ng-form>
</div>
通过使用这种技术,你不需要重复 ng-model 中使用的表达式,并且可以在任何形式中重用这个片段。
关于angularjs - 如何从指令访问子 ngModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16115521/