多个/嵌套的applicationHost

时间:2013-05-07 08:54:07

标签: durandal

Drupal的Nuget样本结果很好,而且文档也很有用..

到目前为止,我们发现index.html包含名为applicationHost的主机:

  <div id="applicationHost"></div>
由于main.js加载了shell.js模块:

,因此填充了

router.mapNav('welcome');
...
app.setRoot('viewmodels/shell', 'entrance');

在查看激活后,路由到欢迎module,欢迎view

activate: function () {return router.activate('welcome');}

大。

我现在要弄清楚的是如何嵌套'applicationHost'容器,将视图加载到一个独立的容器中。

一个例子可能是

router.mapNav('settings');
router.mapNav('settings/mailserver'); //but this one render within an inner container.
router.mapNav('settings/messages'); //but this one render within an inner container.
...
app.setRoot('viewmodels/shell', 'entrance');

这样就会呈现settings。html,其中包含另一个容器,它的viewmodel类似于:

//As restauants view comes in, it sets it's inner view to something
activate: function () {return router.activate('settings/mailserver');} 

与第一个问题相关 - 如果另一个网页上有settings/messagessettings/mailserver的链接,我该如何确保首先看到父settings可见?

非常感谢。

2 个答案:

答案 0 :(得分:0)

您想使用Visual Composition。 e.g。

<div>
    <div data-bind="compose:'viewmodels/header'"></div>
</div>

请参阅: http://durandaljs.com/documentation/Using-Composition/

答案 1 :(得分:0)

我认为您正在寻找子路由器http://durandaljs.com/documentation/Using-The-Router.html