淘汰模型与ViewModel

时间:2013-01-25 05:40:46

标签: mvvm knockout.js

我试图了解KO中Model和ViewModel之间的区别。我理解概念上的差异,但对我而言,KO中的所有模型似乎都将成为或成为ViewModels的候选者。我会解释:

假设您有一排座位,所以在您的主要 ViewModel 中,您将初始化并将席位模型中的对象集合加载到可观察的数组中

现在你想根据座位的某个属性隐藏显示座位......这就是你的模型成为另一个视图模型的地方......

所以说在KO中我们拥有的是ViewModels吗?

1 个答案:

答案 0 :(得分:15)

是。基本上,任何ko.observable的东西都在创建一个ViewModel。您可以创建一个简单的javascript模型,只能表达JSON,并将其包装起来,但Knockout的MVVM模式中的“模型”通常只存在于服务器上。您从服务器获取模型数据,然后将模型数据发送回服务器(请记住,您不发送observables,只发送他们的数据)

Knockout并不真正关心模型的来源,因为它的主要作用是处理声明性视图(HTML)和ViewModel(带有View-aware observables)之间的数据绑定。 / p>

MVVM模式是由Knockout之外的技术完成的,因为它只是一个客户端框架。你可以说它只是模式的VVM部分,但这很令人困惑。