我有一个包含可排序列表的表单。用户可以在此列表中添加、删除和移动元素。每当对这个列表进行更改时,我希望将from更改为dirty。
我可以通过观察列表上执行的每个动作并执行$scope.formname.$setDirty();
方法来实现这一点,但我想知道是否有一个自定义指令来做到这一点。
例如,我有以下dom:
<div class='my-list'>
<ul class='sortable-list'>
<li>
List Item 1
</li>
<li>
List Item 2
</li>
<li>
List Item 3
</li>
</ul>
</div>
该列表位于表单中,并作为列表存储在模型中。我想我要做的是在这个列表中设置一个监视器,并在表单状态发生变化时将其设置为dirty,然后在存储表单时将其设置为原始状态(可能只是回答了我自己的问题…)
这是通过使用:
$scope.$watch(function () { return sequence.myList}, function (newValue, oldValue) {
// logic to check for change
$scope.formname.$setDirty();
});
,其中sequence是存储表单部分状态的服务。