Ember应用程序中更多相同类型的ArrayControllers

时间:2012-08-15 20:16:09

标签: controller ember.js

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。但是,当我不使用它的功能时,为什么我会使用该框架呢?

请帮我决定。如果有更好的事情,我愿意听从您的意见。请解释一下您首选解决方案的优点(以及可能存在的缺陷)。

1 个答案:

答案 0 :(得分:1)

控制器最适合管理应用程序状态。大多数示例我都看到了单个对象或数组的代理,因此框架类作为起点是有意义的。我没有看到有人用它们来管理协会。为此,我建议看看余烬数据:https://github.com/emberjs/data

如果你打算在不使用ember-data的情况下这样做,我建议选择#1的修改版本。您仍然提供了ContactsController,它扩展了ArrayController,但是不使用另一个控制器来处理内部消息数组。而是使用简单对象的内部数组或者引用App.Message模型实例的message_id列表。

希望这会有所帮助......