0

我正在创建一个 SPA 网站。

基于 Visual Studio 中的 durandal 模板,我们有 main.js 文件,它定义了:

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

我们有 2 个子页面是welcome.js 和 flickr.js 已被注入到 shell 页面。

我想将一个页面注入到子页面中,例如将welcome.js 注入到shell 中。

这意味着我希望有多个级别的子页面可以像这样的描述注入:

Level 1 : index.cshtml

Level 2 : shell.js/shell.html

Level 3 : welcome.js/welcome.html - flickr.js/flickr.html

Level 4 : child1.js/child1.html - child2.js/child2.html.......

Level n : ............
4

1 回答 1

0

您确实可以使用子路由器嵌套视图。有关详细信息,请参阅http://durandaljs.com/documentation/Using-The-Router.html(“子路由器”部分)。但是,根据我自己使用子路由器的经验,嵌套视图会产生很多问题。经常这样做也没有意义,例如像你建议的那样深入4级。

似乎您并不是真的想嵌套视图(视图有点像“页面”),但是您想将某些元素放入视图中,并且可能将元素嵌套在元素中,并为所有这些元素提供一个视图模型,以便您可以给它们行为。如果确实如此,我建议改用 Durandal 的小部件:http: //durandaljs.com/documentation/Creating-A-Widget.html

在我看来,小部件比通过子路由器的嵌套视图灵活得多。

于 2014-08-19T13:22:34.270 回答