是否可以在angularJs中添加自定义元素作为'form element',以便利用ng-dirty 和ng-pristine?



我有一个包含可排序列表的表单。用户可以在此列表中添加、删除和移动元素。每当对这个列表进行更改时,我希望将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是存储表单部分状态的服务。

最新更新