goangular のアプリケーションについて考えていました。チャット アプリケーションや株式アプリケーションなど、すぐにストレージ/データベースを更新する必要がある場合、SignalR 手法の意味で goangular が非常に役立つことがわかります。しかし、10 個のフィールドと保存ボタンがある従来のフォームに適用できるでしょうか? 私が思いついたのは、10 個のフィールドがあり、保存ボタンがない従来のフォームだけでした。10 個のフィールドすべてがコントローラーのスコープにある場合、保存ボタンは必要ありません。フィールドのすべての変更は、goinstant ストレージに記録されます。そうは言っても、1 つの UNDO で、これらの 10 個の変更されたフィールドへの変更をどのように言うことができるでしょうか? Control+Zを10回?それほど堅牢ではありません。そのようなフォームの [すべての変更を元に戻す] ボタンに関するアイデアはありますか? (必死にリアルタイム データベース トランザクションの結合を拡大しようとしています)
1 に答える
最初に、あなたの質問の精神であると私が信じていることに答えようとします。
ほとんどの場合、GoAngular を使用するときは、アプリケーションの状態を同期することに重点を置いています。別名: セッション データを共有するアクティブなクライアント。必然的に、私たちは長期的な持続性の領域に漂流します. この時点で、厳密な検証/サニタイズが必要になります。これについては、コンテキストなしでは議論できません。
ユーザーがプロファイルを完成させているとしましょう。このプロファイルは、永続化する User モデルを作成するために使用されます。コンテキストが得られたので、部分的に完成したフォームを保持してはならないことが明らかになりました。これは、有効な User モデルを表していないからです。フォームが完成して有効になると、フォームを永続化します。
これを実装するのは、カスタムの $scope.onSubmit メソッドを作成$save
し、新しい$scope.user
モデルを呼び出す前にフォーム入力を検証するのと同じくらい簡単です。
元に戻すも簡単に実装できます。使用する$scope.users.$add
と、キーが生成されて返されます。このキーを使用して、新しいユーザーを削除できます。変更をロールバックしたい場合は、バージョンのシステムを実装し、そのユーザーの以前のバージョンにロールバックする必要があります。
ここのどこかであなたの質問に答えたことを願っています:)