当Contact
处理的对象数组(例如App.contactsController
s)和每个联系人都有Message
个与他相关的数组时,最佳做法是什么? ?
我想到的方法:
1)初始化对象并将其推送到contactsController时为每个联系人创建messagesController,如下所示:
App.contactsController.pushObject(App.Contact.create({
"id" : some_id,
"name" : some_name,
"messages" : App.MessagesController.create();
}));
2)仅为应用程序实例化一个messagesController并以某种方式过滤消息。这似乎是一个非常糟糕的解决方案,但它绝对是一个选择。
3)根本不要使用ArrayController。但是,当我不使用它的功能时,为什么我会使用该框架呢?
请帮我决定。如果有更好的事情,我愿意听从您的意见。请解释一下您首选解决方案的优点(以及可能存在的缺陷)。
答案 0 :(得分:1)
控制器最适合管理应用程序状态。大多数示例我都看到了单个对象或数组的代理,因此框架类作为起点是有意义的。我没有看到有人用它们来管理协会。为此,我建议看看余烬数据:https://github.com/emberjs/data
如果你打算在不使用ember-data的情况下这样做,我建议选择#1的修改版本。您仍然提供了ContactsController,它扩展了ArrayController,但是不使用另一个控制器来处理内部消息数组。而是使用简单对象的内部数组或者引用App.Message模型实例的message_id列表。
希望这会有所帮助......