2016-11-14 8 views
0

私たちには2つのリストコントロールと4つのボタンがあるムーバーディレクティブがあります。私はkeepPristineプロパティをこのディレクティブに追加できるようにしたいと思います。私がtrueに設定した場合、コントロールは変更に反応してng-dirtyフラグを設定すべきではありません。AngularJsはリストを元の状態に保ちます

残念ながら

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

、私はそれはまだだNG-ダーティ状態を持っている参照開発者ツールを使用して、このコントロールを検査する場合:私は、リストのNG-変更イベントに追加してみました。両方のリストが自分とのやりとりに関係なく常に元の状態になっていることを確認するにはどうすればよいですか?

+1

'$ pristine'の代わりに' $ setPristine'関数を使うのを覚えていますが、試してみることができますか? – trichetriche

答えて

1

代わりに$setPristine()メソッドを使用してください。その後、それが "原始"ではない場合は、$setPristine()コールの後に$scope.$apply()を追加してください。

+0

私は実際に最後に別のソリューションを使用しました。私はリストを選択したり、設定フォームのボタンコードにダーティーを追加したり(Left Left、Move Left Allなど)、ダーティチェックの指示を追加しませんでした。正常に動作します。 – Naomi

関連する問題