【发布时间】:2014-01-03 16:29:24
【问题描述】:
在 MVC 中,“Model”只是数据的代码表示(例如,在 ASP.NET MVC 中,它是一个具有相应字段的类)。
然而,在 Knockout(它使用 MVVM)中,我看到带有字段的对象被称为“ViewModel”。来自官方 KO 文档:
模型:您的应用程序存储的数据。此数据代表对象 和您的业务领域中的操作(例如,可以 执行汇款)并且独立于任何用户界面。使用KO时, 您通常会对一些服务器端代码进行 Ajax 调用以读取和 写入这个存储的模型数据。
视图模型:数据和操作的纯代码表示 一个用户界面。例如,如果你正在实现一个列表编辑器,你的视图 模型将是一个包含项目列表并公开方法的对象 添加和删除项目。
从示例中可以看出,ViewModel 是具有字段的对象,保存数据,这通常由 MVC 中的 Model 完成:
var myViewModel = {
personName: ko.observable('Bob'),
personAge: ko.observable(123)
};
所以我在这里有点迷路了。 Knockout.js 域中的“模型”和“视图模型”到底是什么意思?
【问题讨论】:
-
顺便说一句,MVC 是一种架构模式,而不是设计模式。
-
好吧,看来你是对的,所以我更改了标签(无论哪种方式都是正确的,因为架构模式是更通用的术语)。然而,它是方式不太受欢迎的标签。
标签: javascript model-view-controller mvvm knockout.js architectural-patterns