单页面应用中的多个区域/部分。 Durandal和淘汰赛方法

时间:2013-08-11 19:07:32

标签: javascript knockout.js durandal

我将单页应用放在一起,其中页面上有多个部分/区域(如左侧三分之一的栏目和右侧的类似栏目),其中我是一个页面。我希望能够使用相关的视图模型交换和输出不同的视图。

例如,在加载页面时,我显示了产品列表。然后,用户可以单击产品,并在屏幕中间显示详细信息,并在最右侧进行成本和制造的一些计算。这可以作为单个页面使用,但是用户可以进入"编辑模式"他们可以在哪里更改所选产品的组件。

当用户进入编辑模式时,我想用左侧列中的产品列表替换原材料列表。理想情况下,如果可能的话,我希望能够为此更改提供过渡效果。有点像asp.net/ajax手风琴面板,甚至是我认为的标签视图。

事情是,因为我正在使用durandal,我相信,这需要一个单独的页面/视图/模型来导航到"这样http://myapp.com/#/products变为http://myapp.com/#/editproduct但我想保持中间和右侧的列不受影响,只加载左列中的新视图,将原始产品列表视图保留在内存中,以便编辑时尽快退出模式后,用户就会回到左边产品列表中的位置。

我对这一切都很陌生,以至于我还不知道我所寻找的术语,因此很难有效地进行谷歌搜索。关于如何最好地构建这种事情的一些指示将非常感激,谢谢!

1 个答案:

答案 0 :(得分:1)

你有很多选择。我想指出它们,因为你有一个非常复杂的问题 -

  1. Durandal为您的情况提供非常实用的支持。这是一项付费服务​​,但听起来您需要有关架构的深入技术指导,而不仅仅是一个小代码建议。
  2. 您可以非常有创意地使用您的应用来实现您的目标。请记住,使用Knockout的视图合成,您可以随时使用标准逻辑 -
  3. 显示您想要的任何内容
    <div>
        <!-- ko if: showingMyView() -->
            <!-- ko compose: { view: 'fights/fight-small' } --><!-- /ko -->
        <!-- /ko -->
    </div>
    

    这是的简单示例。你应该在实际的应用程序中获得更深入的内容。