在过去的几天里,我对Knockoutjs越来越感兴趣了。它看起来非常有前途,因为它模拟了MVVM模式和WPF之类的绑定,但每当它为非RIA网络应用程序带来一些有用的东西时我确实有些怀疑(当我说RIA我的意思是复杂的浏览器应用程序时,让我们说一个ERP,无论如何比向表中添加几行并隐藏一行更复杂的事情
假设您有一个包含10个项目的组合框,您需要能够在客户端创建另外2个项目并将其保存在服务器上。
我看到它的方式你必须用Obs创建一个viewmodel。数组预填充10个项目,并在组合框内渲染10个项目(作为10个选项元素)。
基本上你会有两个项目集合循环,并在js viewmodel和combobox(options)中渲染项目。
现在假设你有30个控件没有关于淘汰视图模型和带有预填充数据的html控件的信息是一个开销?
答案 0 :(得分:2)
每种情况都不同但我认为您通常不需要渲染这些组合框选项以及在Knockout视图模型中定义它们 - Knockout将为您构建选项HTML。 我在复杂的对象图中以这种方式填充了许多组合框。当页面首次加载时,对象图形的初始状态在页面中呈现为对象文字,然后我将其传递到我的顶级Knockout视图模型构造函数,该构造函数通过映射插件创建整个结构(创建子视图模型等) )。 然后,所有保存和更新都通过小的离散Ajax操作完成,并使用映射插件重新映射。