AngularJs将列表保持在原始状态

AngularJs keep lists in pristine state

本文关键字:原始 原始状 状态 列表 AngularJs      更新时间:2023-09-26

我们有一个带有2个列表控件和4个按钮的移动指令。我希望能够添加keepprisstine属性到这个指令,如果我将其设置为true,控件不应该对更改做出反应,并设置ng-dirty标志。我尝试添加到列表的ng-change事件:

 $scope.onChanged = function (assigned) {
                    $scope.selectedItem = assigned[0];
                    if ($scope.keepPristine)
                    {
                        $scope.form.assignedList.$pristine = true;
                        $scope.form.unAssignedList.$pristine = true;
                    }
                }

不幸的是,当我使用开发人员工具检查这个控件时,我看到它仍然有ng-dirty状态。我应该做些什么来确保这两个列表始终处于原始状态,而不管我与它们的交互如何?

您应该尝试使用方法$setPristine()代替…并且,如果在此之后,它还不是"原始的",那么在$setPristine()调用之后添加$scope.$apply()