2016-11-14 65 views
0

我们有一个移动指令,带有2个列表控件和4个按钮。我希望能够将keepPristine属性添加到此指令中,如果将其设置为true,则控件不应对更改和设置脏标志作出响应。我尝试添加到列表中的NG-change事件:AngularJs保留原始状态列表

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

不幸的是,当我使用开发者工具检查此控制我看它仍然NG-脏状态。我应该怎么做,以确保这两个列表始终处于原始状态,无论我与他们互动?

+1

我记得使用'$ setPristine'函数代替'$ pristine',你可以试试吗? – trichetriche

回答

1

您应该尝试使用方法$setPristine()而不是...并且如果在此之后,它不是“原始”,然后在$setPristine()调用后添加$scope.$apply()

+0

我实际上在最后使用了不同的解决方案。我在这两个选择列表中添加了no-dirty-check指令,并将设置表单的脏代码添加到按钮代码中(向左移动,全部移动左移等)。工作正常。 – Naomi