26

ul私のビューには、jQuery UI: Sortable ディレクティブを使用してリスト項目のドラッグ アンド ドロップと並べ替えを容易にする一連の接続されたリストがあります。

jQuery UI のドラッグ アンド ドロップで行った変更$scopeを、関数を使用して適用すると$apply、この部分は機能します…

しかし、私が今直面している問題は、これらのリストのいくつかにドロップすると、ユーザーが記入する必要があるカスタム フォームを提供することです。

ユーザーには次のオプションがあります。

  1. フォームに入力して続行すると$apply、データを永続化するための呼び出しが行われます$scope
  2. $applyを呼び出して情報を保存する代わりに、最後のドラッグ アンド ドロップ インタラクションを元に戻して、すべてのリストを効果的に「再レンダリング」して、$scopeこの段階でまだ残っているデータを反映するキャンセル ボタンをクリックします(最後のドラッグにはまだ影響はありません)。

この「キャンセル」ボタンの効果は、ユーザーがリスト項目をピックアップして別のリストにドラッグする前の時点にすべてを効果的に戻すことです。

を強制的に「更新」または「再レンダリング」ng-repeatして、視覚的に更新し、現在の$scopeデータを再度表示するにはどうすればよいですか?

4

1 に答える 1

23

ユーザーがフォームへの入力を開始したら、設定します

$scope.oldData = angular.copy($scope.data);

次に、ユーザーが好きなようにフォームを使用して $scope.data を編集できるようにします。

次に、ユーザーがキャンセルを押した場合は、設定するだけです$scope.data = $scope.oldData

于 2012-11-05T14:27:11.523 に答える