7

我想知道如何以正确的方式构建 KnockoutJS 应用程序。

  • 官方文档几乎总是只使用一个 ViewModel

在只实现了几个功能之后,我的代码变得非常混乱,并且来自面向对象的背景,我对这样的架构非常过敏。所以必须有更好的解决方案。

由于对 JavaScript 不是很有经验,我正在搜索 Stackoverflow 并找到了这三个选项。所以我尝试了前两个选项,但我对它们不满意:

  • 这里一样拥有多个 ViewModel

我发现很难决定哪些 DOM 元素获得了哪些 ViewModel。还有几个从 DOM 元素外部调用的函数。也许我在这种架构中使用的 ViewModel 太少,但 ViewModel 之间的通信似乎有所不同,我希望不知何故应该没有必要。那么如何正确地做到这一点呢?

  • 拥有子视图并利用with 绑定这三个选项中的第二个选项)。

这是我首选的架构类型,因为您可以从一个视图模型中进行文档范围的绑定,但您也可以将代码构造成子块,并使用 with 绑定将它们绑定到您想要的任何位置。此选项虽然需要对象文字而不是函数,如本答案中所述,这些函数较差。

我没有尝试过方法三,因为它似乎有点矫枉过正并且还使用了对象文字。

那么有没有一种方法可以在不使用对象文字的情况下构建我的代码并完全控制?

我希望这不会太令人困惑:-P

4

1 回答 1

3

对于您提到的任何选项,您不需要使用对象文字。示例只是使用它们来简化代码。您可以选择以您认为合适的任何方式创建单独的视图模型。

例如在 #3 中,您可以使用如下构造函数:http: //jsfiddle.net/rniemeyer/PctJz/149/。当然,实际数据将被传递到函数中,而不是静态的。与 #2 相同,您只需将其包装在“视图”对象中。

于 2012-10-14T17:56:30.713 回答