3

我对 Durandal 是全新的并且到目前为止很喜欢它,但我想知道使用它的一些应用程序架构问题。例如,什么时候是使用ko: composevs 小部件 vs 子视图 vs 视图的好时机?

我目前的想法是:

使用完整页面的视图

使用子视图或ko: compose可互换的子页面

为不止一处使用的子视图使用小部件

这与预期的用例相符吗?我知道 Durandal 是高度可定制的,但是基于 Starter Kit 结构并使用默认实用程序(knockout.js、jquery、sammy 等),使用上述每个元素的正确时间是什么时候?

4

1 回答 1

4

欢迎加入并确保浏览http://durandaljs.com/pages/docs/上的文档,该文档提供了很好的概述。

在查看允许组合 DOM 片段的 Durandal 功能时,我通常会区分为单例(唯一的,只有其中一个)或构造函数(可能是一个或多个)的视图模型。按照惯例,视图模型与同名的 *.html 文件配对。

例如,看看 Durandal 的示例 shell.htmlJumpStarter 的 shell.html 中的 shell.html

在这两个示例中都shell.js返回一个单例,因为只有一个 shell,但第二个示例将导航 html 提取到它自己的子视图中。如您所见,子视图没有自己的虚拟机,而是绑定了父视图(此处shell.js)。通过这样做,您可以创建更小、更易于维护的片段,如果需要,可以在其他地方重复使用。

有关为 vm 使用构造函数的示例,请查看主详细信息示例

小部件是 vm/view((controller.js/view.html) 的一种特殊形式,如果需要配置这些元素,根据它们运行的​​上下文略有不同,可以考虑使用。一个示例可能是表单元素正在运行作为模态形式与内联形式的一部分。

在 Durandal 1.2 中,只有小部件可以在合成期间接收额外的数据,但这将在即将到来的 2.0 中改变。

于 2013-06-07T09:36:29.877 回答