6

backbone.js を使用して、データ入力が集中する RIA を構築しています。私の最初の計画は、UI に「保存」ボタンと「キャンセル」ボタンを配置し、ユーザーが保存を押すたびにモデルを大きなチャンクでのみ保存することでした。キャンセルを押すと、サーバーからモデルがリロードされるだけです。このようにして、ユーザーは取り返しのつかない間違いを犯すことを心配する必要がなくなります。

ただし、モデルの変更を「監視」し、モデル値を元に戻すときにビューを正しく更新することがいかに簡単かを考えると、元に戻す/やり直しを実装することはおそらくそれほど難しくないことに気付きました。元に戻す/やり直しができる場合は、モデルをサーバーに即座に保存することを選択します。

2 つのアプローチのうちの 1 つは、バックボーンによって支持されていますか? バックボーンの MVC スタイルを使用して元に戻す/やり直しを実装する良い方法は何ですか?

4

1 に答える 1

5

あなたはこの答えをしばらく待っていました、多分あなたはすでにそれに答えました。私はコードを持っていませんが、いくつかの概念が頭に浮かびました。

大まかに言えば、元に戻すことができるベースモデルがあります。あるいは、何らかの形式のミックスインを使用して、モデルに元に戻すことができるようにすることもできます。undoの実装では、コマンドパターンを使用して、マルチレベルのundo'スタック'を形成します。

これを実装している場合は、元に戻すことができるモデルに、コマンドモデルのbackbone.jsコレクションを装備する可能性があると思います。これらのコマンドモデルは、元に戻すことができるモデルへの変更をカプセル化し、モデルからの変更イベントと組み合わせて作成されます。元にできるモデルへの変更を元に戻すには、topコマンドをオフにして、元に戻すを元にできるモデルに適用します。サーバーを更新すると、コマンドのコレクションが消去されます。

これらすべての複雑な点の1つは、元にたりが原因で発生する変更を管理する方法です。これら自体が、スタックの最上位に元に戻るコマンドを生成するべきではありません。

お役に立てれば。

于 2011-05-28T02:52:34.780 に答える