これをできるだけ簡潔に説明しようと思います。私が取り組んでいるアプリ内では、バックボーン モデルが保存され、後で編集することができます。現在、機能が完全に動的な場所にセットアップしています。
例:this.model.set('attribute', value)
標準的なものがあります。これが問題です。クライアントは、ユーザーが保存して終了ボタンを明示的にクリックするまで、更新されたモデルを保存しないことを望んでいます。
以前は、次のパターンを編集に使用していました。
this.model = options.previousModel || new NamedBackboneModel({
id: this.model.get('id'),
attr: otherModel.get('attr')
});
その例のプロパティとモデル名を一般的なものにしましたが、うまく機能しました。ビュー全体で使用model.set('attr' value)
し、完璧でした。
以前のモデルにすぐに保存せずに、previousModel を編集できる最善の方法は何ですか?
バニラ オブジェクトを使用して変更を追跡することを検討しましたが、典型的なバックボーン パターンによりインライン化された、より良い方法が必要であると考えています。
当然、試してみnew NamedBackboneModel(options.previousModel.toJSON())
ましたが、モデルのネストされたコレクションが期待どおりに機能せず、アーキテクチャの変更が必要になるためです。
以前のモデルのクローンが機能すると考えましたが、そのアプローチでもうまくいきませんでした。ご協力いただきありがとうございます。さらに説明が必要な場合はお知らせください。