Ember.js のビューに関する説明を探しています
レールのバックグラウンドから来たので、先入観を無視しようとしています。私が ember フレームワークについて理解していることから、5 つのコンポーネントがあります。
- ルート: ここで、アプリケーションの状態を定義します。状態は URL に反映されます。ここでデータの読み込みを定義することもできます。ルート クラスが定義され、ember の起動時に、アプリケーションの期間中持続するルート オブジェクトが作成されます。
- モデル: オブジェクト データが定義される場所です。計算されたプロパティも定義できます。サーバーから返された json オブジェクトごとにモデル オブジェクトが作成されます。
- コントローラー: これは、モデルとテンプレート/ビューの間の対話を仲介します。コントローラー クラスが定義され、ember の起動時に、アプリケーションの期間中持続するコントローラー オブジェクトが作成されます。各コントローラ クラスのインスタンスは 1 つだけです。
- テンプレート: これらは、生成されたマークアップを記述します。
- ビュー: これらは、モデルに関連する特定のテンプレートまたは dom 要素です。これらは、インターフェイス イベントを定義し、処理のためにコントローラに送信するために使用されます。これらを作成する時期がわからない。
例として、applicationRoute にデータがロードされた EventsController があるとします。
ScheduleApp.EventsController = Ember.ArrayController.extend();
ScheduleApp.ApplicationRoute = Ember.Route.extend({
setupController: function() {
this.controllerFor('events').set('content', ScheduleApp.Event.find());
}
});
テンプレートで、それぞれを反復して情報を表示する代わりに、それぞれを反復し、関連付けられたビューを作成して、各イベントにインタラクションを追加できるようにします。イベントごとに新しいビューを作成し、テンプレートに表示する必要があると思います。ただし、これらのビューを作成する場所がわかりません。ビュー クラスを定義すると、ビュー ヘルパーを使用して呼び出すたびに新しいビュー オブジェクトが作成されますか? 最終的には、ビューで appendTo を使用して、イベントを dom の別の場所に挿入したいと考えています。これはどこで定義されますか?
ビューの ember.js ガイドを読んでみましたが、単一のビューを作成するコンテキストについて説明しています。イベントごとに多くのビューを作成し、それらのオブジェクトと動的にやり取りしたいと考えています。
これまでの ember はとてつもなく賢いので、これらのビューを生成する組み込みの方法があると思います。結局のところ、ほとんどのユーザー インターフェイスは、対話を必要とするリストでいっぱいです。問題は、私が作成しようとしているリストであり、その属性に応じて dom に広げたいと考えています。