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

som*_*son 8 javascript mvvm knockout.js

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

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

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

nee*_*ebz 7

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

模型位于服务器端.

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

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

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

  • 我移植的项目太大,无法发布任何有价值的内容.我觉得有点难以理解的是,在我看来,ViewModel应该只关注将数据暴露给视图,真正充当绑定层,但是如果我开始将其他逻辑放在那里它变成了不止于此,最终变得庞大而难以理解.也许我需要以另一种方式看待它并通过组合来完成它,所以我将把所有其他功能放到他们自己的类中并从ViewModel委托. (2认同)