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并以某种方式过滤消息。这似乎是一个非常糟糕的解决方案,但它绝对是一个选择。

3) 根本不要使用 ArrayController。但是,当我不使用它的功能时,我为什么要使用它呢?

请帮我做决定。如果有什么更好的,我愿意听从你的意见。请解释您首选解决方案的优点(和可能的缺陷)。

4

1 回答 1

1

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

如果您要在不使用 ember-data 的情况下执行此操作,我建议您选择 #1 的修改版本。您仍然提供了扩展 ArrayController 的 ContactsController,但不要将另一个控制器用于内部消息数组。而是使用简单对象的内部数组或引用 App.Message 模型实例的 message_id 列表。

希望这可以帮助...

于 2012-08-28T03:50:44.937 回答