0

在过去的几天里,我对 Knockoutjs 越来越感兴趣。它看起来很有前途,因为它模拟了 MVVM 模式和类似 WPF 的绑定,但我确实有一些疑问,只要它为非 RIA Web 应用程序带来一些有用的东西(当我说 RIA 时,我的意思是浏览器应用程序中的复杂性,比如说 ERP,无论如何比在表格中添加几行并隐藏一个更复杂的东西)

假设您有一个包含 10 个项目的组合框,您需要能够在客户端创建另外 2 个项目并将它们保存在服务器上。

在我看来,您必须使用 Obs 创建一个视图模型。预填充 10 个项目的数组,并在组合框中呈现 10 个项目(作为 10 个选项元素)。

基本上,您将有 2 次循环两次项目集合,并在 js 视图模型和组合框(选项)中呈现项目。

现在想象一下,如果您有 30 个控件,那么不会有关于剔除视图模型和带有预填充数据的 html 控件的信息是开销吗?

4

1 回答 1

2

每种情况都不同,但我认为您通常不需要呈现这些组合框选项以及在 Knockout 视图模型中定义它们 - Knockout 将为您构建选项 HTML。我在一个复杂的对象图中以这种方式填充了许多组合框。当页面首次加载时,对象图的初始状态在页面中呈现为对象文字,然后我将其传递给我的顶级 Knockout 视图模型构造函数,该构造函数通过映射插件创建整个结构(创建子视图模型等)。然后所有的保存和更新都是通过小的离散 Ajax 操作和映射插件重新映射来完成的。

于 2012-07-04T10:34:57.257 回答