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

wma*_*but 6 javascript architecture ember.js ember-old-router

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

假设我正在设计icloud clone,我有电子邮件功能和照片库功能.现在,如果我想完成类似的事情

***********************************************************
* INBOX LIST     **  COMPOSE OR VIEW MESSAGE              *
*                **                                       *
*                **                                       *
*                **                                       *
*                **                                       *
* CONTACTS LIST  **                                       *
*                **                                       *
*                **                                       *
*                **                                       *
*                **                                       *
***********************************************************
Run Code Online (Sandbox Code Playgroud)

我想要设计的方式就像是

EmailController/View
|-- SplitViewController/View
   |-- InboxListController/View
   |-- ContactsListController/View
   |-- ComposeMessageController/View
   |-- ReadMessageController/View
Run Code Online (Sandbox Code Playgroud)

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

EmailController/View
|-- SplitViewController/View
   |-- InboxListController/View
       |-- ContactsListController/View
           |-- ComposeMessageController/View
               |-- ReadMessageController/View
Run Code Online (Sandbox Code Playgroud)

我怎样才能找到适合Ember.js/Router的架构风格,它仍然允许更复杂的嵌套?

sly*_*7_7 8

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

splitViewController.connectOutlet({name: 'inboxList', outletName: 'inboxListView'})
splitViewController.connectOutlet({name: 'contactsList', outletName: 'contactsListView'})
Run Code Online (Sandbox Code Playgroud)

等等...