2

によって処理されるオブジェクトの配列(たとえば、Contacts)がApp.contactsControllerあり、各連絡先Messageに彼に関連するsの配列がある場合のベストプラクティスは何ですか?

私の頭に浮かんだアプローチ:

1)次のように、オブジェクトを初期化してcontactsControllerにプッシュするときに、連絡先ごとにmessagesControllerを作成します。

App.contactsController.pushObject(App.Contact.create({
    "id" : some_id,
    "name" : some_name,
    "messages" : App.MessagesController.create();
}));

2)アプリケーションのmessagesControllerを1つだけインスタンス化し、何らかの方法でメッセージをフィルタリングします。これは本当に悪い解決策のようですが、それは間違いなくオプションです。

3)ArrayControllerをまったく使用しないでください。しかし、その機能を使用しないのに、なぜフレームワークを使用しているのですか?

どうか、私が決めるのを手伝ってください。もっと良いことがあれば、私はあなたの意見に従う準備ができています。ご希望のソリューションの利点(および考えられる落とし穴)を説明してください。

4

1 に答える 1

1

コントローラは、アプリケーションの状態を管理するのに最適です。私が見た例のほとんどは、単一のオブジェクトまたは配列のいずれかにプロキシするため、フレームワーククラスは開始点として意味があります。アソシエーションを管理するためにそれらを使用する人を見たことがありません。そのためには、ember-dataを確認することをお勧めします:https ://github.com/emberjs/data

ember-dataを使用せずにこれを行う場合は、選択#1の修正バージョンをお勧めします。ArrayControllerを拡張するContactsControllerを引き続き提供しますが、メッセージの内部配列に別のコントローラーを使用しないでください。代わりに、単純なオブジェクトの内部配列、またはApp.Messageモデルのインスタンスを参照するmessage_idsのリストを使用してください。

お役に立てれば...

于 2012-08-28T03:50:44.937 に答える