angularjs - 如何从指令访问子 ngModel?

标签 angularjs angularjs-directive

喜欢在 this question ,我要加.error在表单域的父级 .control-groupscope.$invalid是真的。

但是,像 ng-class="{ error: formName.fieldModel.$invalid }" 一样对表单名称进行硬编码意味着我不能以不同的形式重用它,而且我不想到处重复这个声明。

我认为看起来像这样的指令可以工作:

<div class="control-group" error-on="model1, model2">
  <input ng-model="model1">
  <input ng-model="model2">
</div>

所以当 model1model2无效,.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/

相关文章:

javascript - 重用数组引用而不是克隆/复制 - Angular Bootstrap 导航树的多个实例

javascript - 在 angularjs 中用第一个下拉菜单填充第二个下拉菜单多选

javascript - AngularJS 指令 : Pass dynamically created object as attribute for nested directive

javascript - AngularJS 使用 $rootScope 作为数据存储

javascript - 更新事件的 Angular 范围

angularjs - ng-cloak和ng-show在屏幕上闪烁隐藏的元素

angularjs - Angular4只为一个组件添加js文件?

javascript - 让 angular-masonry 工作它说它没有方法 'imagesLoaded'

AngularJS 将数据插入 JSON 文件

AngularJS - 如何获取实际的先前路径