我正在尝试使用Angular的$ dirty标志仅提交表单中更改的字段。
遇到单选按钮组时,我缺少更改字段列表中的更改。我的小提琴再现了我所看到的问题。
<div ng-app="form-example" ng-controller="MainCtrl">
<form name="form" novalidate>
<input type="radio" name="myRadio" ng-model="myRadio" value="one" required>One<br />
<input type="radio" name="myRadio" ng-model="myRadio" value="two" required>Two<br />
<input type="radio" name="myRadio" ng-model="myRadio" value="three" required>Three<br />
<input type="radio" name="myRadio" ng-model="myRadio" value="four" required>Four<br />
<input type="radio" name="myRadio" ng-model="myRadio" value="five" required>Five<br /><br />
Form $dirty: {{form.$dirty}}<br />
Field $dirty: {{form.myRadio.$dirty}}<br />
Value: {{myRadio}}
</form>
</div>
即使窗体$ dirty正确更新,该字段的$ dirty标志也仅在单击最后一个单选按钮时才会更改。
我在这里缺少基本的东西吗?并且有解决此问题的方法吗?
每个ng-model
实际实例化一个控制器。单击任何单选按钮时,控制器会将$dirty
字段设置为true
并设置form.$dirty
为true。
问题是form.myRadio
保留对最后一个单选按钮的模型的引用。
解决方法是,您可以将嵌套表单与一起使用ng-form
。看到这里:http : //jsfiddle.net/UM578/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句