Ember.js路由器应用程序架构 - 如何拥有多个嵌套视图/控制器对

时间:2012-10-10 17:23:49

标签: javascript architecture ember.js ember-old-router

我有一个余烬应用程序和插座的概念和连接插座很好,我明白了。我不明白的是如何在没有疯狂嵌套的情况下在另一个视图/控制器视图中有多个视图/控制器视图

假设我正在设计icloud clone,我有电子邮件功能和照片库功能。现在,如果我想完成像

这样的事情
***********************************************************
* INBOX LIST     **  COMPOSE OR VIEW MESSAGE              *
*                **                                       *
*                **                                       *
*                **                                       *
*                **                                       *
* CONTACTS LIST  **                                       *
*                **                                       *
*                **                                       *
*                **                                       *
*                **                                       *
***********************************************************

我想要设计的方式就像

EmailController/View
|-- SplitViewController/View
   |-- InboxListController/View
   |-- ContactsListController/View
   |-- ComposeMessageController/View
   |-- ReadMessageController/View

我可以将这些热交换到SplitView的级别或者将它们全部删除,但是我没有看到一个很好的方法,只允许一个outlet。它会迫使我接下来不应该嵌套的东西。使用单插座方法,我的结构看起来更像

EmailController/View
|-- SplitViewController/View
   |-- InboxListController/View
       |-- ContactsListController/View
           |-- ComposeMessageController/View
               |-- ReadMessageController/View

我如何找到适合Ember.js / Router的架构风格,仍允许更复杂的嵌套?

1 个答案:

答案 0 :(得分:8)

你知道你能说出口吗?例如,在SplitView模板中,您可以拥有一个{{outlet inboxListView}},一个{{outlet contactsListView}}等...当您执行connectOutlets时,您可以这样做:

splitViewController.connectOutlet({name: 'inboxList', outletName: 'inboxListView'})
splitViewController.connectOutlet({name: 'contactsList', outletName: 'contactsListView'})

依旧......