Javascript 淘汰赛SPA:不同布局(母版页)

Javascript 淘汰赛SPA:不同布局(母版页),javascript,knockout.js,single-page-application,Javascript,Knockout.js,Single Page Application,我正在用knockout.js构建SPA应用程序。 基本上,我所做的是根据路由的不同将ko组件绑定为当前页面。 看起来像 <div id="currentPage" data-bind="component: { name: currentRoute.page, attr: currentRoute }> </div> 在knockout中,如果要动态更改视图的任何部分,则必须

我正在用knockout.js构建SPA应用程序。 基本上,我所做的是根据路由的不同将ko组件绑定为当前页面。 看起来像

<div id="currentPage" data-bind="component: { name: currentRoute.page,
                                              attr: currentRoute }>
</div>


在knockout中,如果要动态更改视图的任何部分,则必须将绑定附加到视图。你说页面的外部布局取决于正在显示的内页,所以逻辑上,我认为它是页面视图定义的一部分。这就是为什么我不会寻找一些特殊的方式来处理这个案件

如果我没有遗漏什么,在这种情况下,合理的做法是只在每个页面中包含布局。然后,您可以使用“传统”方法处理重复代码,方法是使用淘汰模板(特别是关于中的动态模板的注释5)和代码提取


您可能希望采取的另一种方法是将所有布局放在母版页中,然后使用“if”和“visible”之类的绑定来控制它们。

我无法在每个页面中定义布局,因为我需要持久化状态。我更新了我的问题,以便更清楚
<html>
    <head></head>
    <body>
        <div data-bind="component: {name: "nav"}></div>
        <div data-bind="component: {name: "aside"}></div>     
        <div id="currentPage" data-bind="component: {  name: currentRoute.page, 
                                                       attr: currentRoute}">
        </div>
    </body
</html>
 <html>
    <body>
         <wrapper>
               <currentPage>
         </wrapper>
    </body
</html>