1

我正在组合一个单页应用程序,其中页面上有多个部分/区域(例如左侧三分之一页面宽的列和右侧类似列),我希望能够交换使用关联的视图模型进出不同的视图。

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

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

问题是,当我使用 durandal 时,我相信这需要一个单独的页面/视图/模型来“导航到”这样http://myapp.com/#/products变成http://myapp.com /#/editproduct但我想保持中间和右列x不变,只加载左列中的新视图,将原始产品列表视图保留在内存中,这样一旦退出编辑模式,用户就会马上回来它们在左侧产品列表中的位置。

我对这一切都很陌生,以至于我还不知道我正在寻找的术语,所以很难有效地用谷歌搜索。将不胜感激地收到有关如何最好地构建此类事物的一些指示,谢谢!

4

1 回答 1

1

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

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

这是一个极其简单的例子。您可能应该更深入地了解您的实际应用程序。

于 2013-08-12T14:08:02.977 回答