私はEmberを初めて使用しますが、アプリケーションのより良いアプローチを見つけるのにかなり迷っています。
アプリケーション:画面は2つの部分に水平に分割されます:
- 左側はPerson属性(name、lastName、email)を入力するためのフォームです
- 右側は左側のフォームのグラフィカルビューです
私は正確に最善の解決策を知りません:
解決策1:
- モデルのPersonオブジェクト(インスタンスは今のところPersonオブジェクトのグローバル変数です)
- フォームを管理し、属性を検証するPersonFormController
- フォームを表示するPersonFormView
- PersonRenderedController:フォームのレンダリングを管理します
- PersonRenderedView(表示ビューのみ、ユーザーインタラクションなし)
- 2つのコントローラーには、コンテンツプロパティのpersonグローバル変数への参照があります
- 「接続アウトレット」を使用してコントローラー/ビューを接続しますrouter.get('applicationController')。connectOutlet('left'、'personForm'); router.get('applicationController')。connectOutlet('right'、'personRendered');
PersonRenderedControllerはあまり有用ではなく、「コンセント接続」に使用されているため、この解決策はわかりません。
解決策2:
- モデルのPersonオブジェクト(インスタンスは今のところPersonオブジェクトのグローバル変数です)
- フォームを管理し、属性を検証するPersonFormController
- フォームを表示するPersonFormView
- PersonRenderedView(表示ビューのみ、ユーザーインタラクションなし)
- personRenderedControllerはありません(このビューの表示モードのみであるため、必要ありません)
- アウトレットはありませんが、一般的なテンプレートで2つのビュー(フォームとレンダリング)を手動で作成します
solution1はおそらくもっと柔軟だと思います(レンダリングされたビューにコントローラーが必要な場合)
アドバイスをいただけますか?