Ember 应用程序中更多相同类型的阵列控制器



App.contactsController处理对象数组(例如Contact s)并且每个联系人都有与他相关的Message数组时,最佳做法是什么?

我想到的方法:

1)在初始化对象并将其推送到联系人控制器时为每个联系人创建消息控制器,如下所示:

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

2)仅为应用程序实例化一个消息控制器并以某种方式过滤消息。这似乎是一个非常糟糕的解决方案,但这绝对是一种选择。

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

请帮我决定。如果有更好的,我准备听从你的意见。请解释一下您首选解决方案的优势(和可能的陷阱)。

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

如果你打算在不使用余烬数据的情况下做到这一点,我建议选择#1的修改版本。您仍然提供了扩展ArrayController的ContactsController,但不要将另一个控制器用于内部消息数组。而是使用简单对象的内部数组或引用 App.Message 模型实例的message_ids列表。

希望这有帮助...

最新更新