1

我们有一个主菜单项,比如 WorkFlow。每当您单击它时,它都会打开一个选项卡,在该选项卡下加载工作流的 UI。请注意,此选项卡不是浏览器选项卡,而是应用程序 UI 中的选项卡。工作流有四个屏幕,由它们自己的视图和视图模型驱动。用户可以通过填写数据、做出选择等并在工作流屏幕之间来回移动来执行该工作流。

要求是当用户重复单击 WorkFlow 菜单项时,应打开多个选项卡,每个选项卡都包含工作流屏幕,这些屏幕可以独立于在其他选项卡中打开的相同工作流执行。例如,在第一个选项卡中,您可以移动到工作流中的屏幕 2,而在第二个选项卡中,您可以移动到第四个屏幕,然后如果您在这些选项卡之间切换,每个工作流都会保持其状态和数据,就像 kayak.com 一样. 问题的关键在于,我们真的不希望视图模型在我们在选项卡中打开的同一视图的多个实例之间共享。如何使用 Durandal/KnockOut 来实现这一点?

谢谢,

苏斌

4

1 回答 1

0

所以本质上你是在尝试显示同一个 Viewmodel 的多个实例,对吗?如何更改以使 Durandal 仅显示 BASE-Workflow ViewModel,但使用模板在内部渲染 X 次?

要捕获 TabItem 上的点击,而不是创建 MapNav,请使用 MapRouter,并将可见性设置为 false,然后在 Shell 中或显示该项目的任何地方使用 Click 数据绑定创建自定义条目。在那里,您可以将一些特定代码发送到您的 BaseWorkmodel,以便它了解创建更多模板。

我对 Durandal 也很陌生,但这就是我尝试解决这个问题的方法

希望这可以帮助

于 2013-07-31T06:51:36.027 回答