1

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/messages或的链接settings/mailserver,我如何确保确保父settings级首先可见?

非常感谢。

4

2 回答 2

0

您想使用视觉合成。例如

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

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

于 2013-08-22T11:12:20.870 回答
0

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

于 2014-09-04T23:01:30.177 回答