ユーザーがセット { A, B, C } から 1 つの div を選択し、それを div X に追加するとします。ただし、各 div には、アプリケーションの状態と各 div の固有のプロパティに依存する可能性のある異なるルールがあります。最後に div を追加すると、各 div が異なるイベントをトリガーする場合があります。
たとえば、あるアプリケーションの状態では、ユーザーは次のようになります。
A を X に追加してみてください: A が X に追加され、他に何も起こりません
B を X に追加してみてください: B が X に追加され、追加のイベントがトリガーされます
C を X に追加してみてください: 許可されていません。C は定義された元の状態に戻ります (たとえば、ドラッグ アンド ドロップで C を X に追加しようとすると、C は元の位置に戻ります)。
3 つの div すべてが既にレンダリングされており、それぞれに 1 つのモデル、ビュー、およびコントローラーが存在するとします。
このプロセスで見られるロジックの断片と、それを配置する場所を自由に教えてください。しかし、答えてください:
- 検証プロセスはコントローラ レイヤ、またはモデル レイヤのどこかに配置する必要があります。
- 検証が完了すると、1 つのメディエーター オブジェクトがモデルとビューを呼び出して新しい子を追加するか、モデルが子を追加し、何らかの方法でビューをトリガーして同じことを行う必要があります。
- コントローラーは、dom とモデルの階層関係を認識する必要があります
Ember.js でこんな感じの実装をしているのですが、使っていない・聞いたことがないという方でもいいので回答お願いします。