关于javascript:Knockout.js中的’Model’和’ViewModel’

'Model' and 'ViewModel' in Knockout.js

In MVC,Model is just code representation of data(E.G.in ASP.Net MVC is a class with according fields).

在Knockout However(which employs MVM),我看到与Fields一起的对象被称为"视野模型"。From official ko documentation:

A model: your application’s stored data. This data represents objects
and operations in your business domain (e.g., bank accounts that can
perform money transfers) and is independent of any UI. When using KO,
you will usually make Ajax calls to some server-side code to read and
write this stored model data.

A view model: a pure-code representation of the data and operations on
a UI. For example, if you’re implementing a list editor, your view
model would be an object holding a list of items, and exposing methods
to add and remove items.

From examples,it can be seen that viewmodels are objects with fields,holding the data,what usually d be done by model in MVC:

1
2
3
4
var myViewModel = {
    personName: ko.observable('Bob'),
    personAge: ko.observable(123)
};

所以我迷路了在Knockout.JS域名中究竟是什么样的模型和视野?


在一个JavaScript implemented MVVM模式,或"模式"supplied方冰的web API。这是提供的数据页是两个模型。现在不管是冰的数据包含在一个单独的对象模型,它在JavaScript的-是另一个故事。

A View模型冰的往往只是一个模型,已被augmented与函数的性质和支持的观点,特别是它的两个应用。客户端计算的面貌,滴下的IP值,客户端的验证套路等。在这个案例中,视图模型可能看起来像这样:

1
2
3
4
5
6
7
8
var vm = {
    save: function(){ save logic... },
    cancel: function(){ cancel logic... },
    states: ko.observable(), //list of states for state dropdown
    customerId: ko.observable(),
    customerFirstName: ko.observable(),
    customerLastName: ko.observable()
};

其他时报,模型将维持在一个单独的对象。在那实例视图模型可能看起来像这样:

1
2
3
4
5
6
7
var customerModel = getCustomerFromDataSource();
var vm = {
    save: function(){ save logic... },
    cancel: function(){ cancel logic... },
    states: ko.observable(), //list of states for state dropdown
    customer: customerModel
};

这两个主要的东西一直在提醒冰,冰的数据模型和视图层的模型是可行的,使得你的模型,两个视图(通常是通过数据绑定)。该模型有时可能是一种独立的类;其他时代的模型冰是一种已知的置业的视图模型。



模型 模型组的信息,但typically多尼的购物行为

视图> 视图包含的数据采集、事件和behaviours安,需要理解的模型和视图模型。尽管这两个behaviours可以mapped置业,视图仍然负责行动的视图模型。

视图模型 在我们的sits视图模型的界面层。它需要一个exposes数据视图(从一个模型)和可以把开源作为我们的观点去两个数据和行为。

你可以找到更多的信息在下面的链接 在这里
你也可以找到更多的信息关于MVC和MVVM在stackoverflow问题


嗯,这是我的教授(风情小镇也一个JavaScript程序)。

这是一个对象模型的数据作为一个团队,其性质。

视图模型的尽头就是分捡/层接口的数据和DOM(文档对象模型)。

在发生的数据模型,tries两个连接的用户界面的每个小时的文档对象模型(称为冰。

视图模型使用两站,冰淇淋的做法。在一次的数据模型冰完全好了,这是分配两个阵列的指尖的视图模型。然后从视图模式显示为它的用户界面。

这只是一个良好的编程方式"。