Knockout JS - 为什么所有示例都只包含ViewModel / View但没有Model

时间:2011-06-29 12:23:28

标签: javascript mvvm knockout.js

我正在查看很多可用的Knockout JS文档,但是它似乎没有像我期望的那样遵循MVVM模式(当看维基百科的MVVM定义时)。

在所有示例中,它们似乎都显示了ViewModel和Views的源代码,但是从来没有模型,现在似乎模型应该包含的大部分功能(保存/检索数据表示)都放在视图模型。我认为也许ViewModel实际上更像是模型,你可以免费获得的绑定层是ViewModel,因为它可以完成所有绑定......

所以我只是想知道我在这里遗失了什么?因为我现在有一个问题,我的UI逻辑应该去哪里,即添加水印,Inter-View聊天等,我还没有真正得到一个可靠的答案,所以想确认我对模式使用的理解在继续之前,在此框架内是正确的。

1 个答案:

答案 0 :(得分:7)

在Web开发中,Views和ViewModel位于客户端。

模型位于服务器端。

模型表示真实对象,而视图模型仅根据显示它们的视图表示它们,例如在客户模型中,您拥有与客户相关的所有信息,但在客户视图模型中,您可能只有客户名称(因为这是您在视图中的所有显示)。

大多数knockoutjs示例都没有解释Model位是因为它依赖于服务器端,可以用Ruby / C#/ Python等编写。敲除只处理View Model和View;它是服务器端不可知的。

服务器端技术需要在MVVM中开发Model层。需要Knockoutjs来开发VM-V层。