在切换嵌套视图时,是否有一种简单的方法可以将输入字段的$ pristine / $ dirty状态保存在包含嵌套视图的表单中?
我的应用具有以下结构:
<div ui-view> <!-- main view - this stays active -->
<div ng-form="form.product">
Some content
<div ui-view></div> <!-- sub view - this changes and holds different parts of the form -->
<!--
the content of this inner view (its template) looks something like this:
<input type="text" ng-model="myModel.someProperty"/>
-->
</div>
</div>
保存表单数据的控制器位于外部视图控制器上。切换选项卡(以及内部视图的内容)时,内部输入元素的值始终显示正确的值。我可以更新值,一切正常,除了一件事:验证状态正在重置。
当我更改输入字段时,外部表单和内部输入元素变为$ dirty - 但是当我切换内部视图然后再返回时,外部表单仍然是$ dirty 但是内部输入元素是$ pristine再次,即使输入元素仍然保持更改的值,外部表单仍然是$ dirty。
我认为输入元素$ dirty / $ pristine状态在内部视图被卸载然后再次加载时被重置,尽管它们的值会在外部窗体进入视图时立即使用模型值更新。
当我在没有太多额外代码的情况下切换到另一个视图时,是否有一种简单的方法可以保持$ dirty状态(比如跟踪每个singe输入元素的变化)?