Knockout.js 互动版

View Models

Knockout是在下面三个核心功能是建立起来的:

监控属性(Observables)和依赖跟踪(Dependency tracking)、声明式绑定(Declarative bindings)、模板(Templating)。

在这一章中我们先介绍3个功能中的第一个。 在这之前, 我们来解释一下MVVM模式和view model的概念。

Model-View-View Model (MVVM) 是一种创建用户界面的设计模式。 描述的是如何将复杂的UI用户界面分成3个部分:

model: 你程序里存储的数据。这个数据包括对象和业务操作(例如:银子账户可以完成转账功能), 并且独立于任何UI。使用KO的时候,通常说是向服务器调用Ajax读写这个存储的模型数据。

view model: 在UI上,纯code描述的数据以及操作。例如,如果你实现列表编辑,你的view model应该是一个包含列表项items的对象和暴露的add/remove列表项(item)的操作方法。

view: 一个可见的,交互式的,表示view model状态的UI。 从view model显示数据,发送命令到view model(例如:当用户click按钮的时候) ,任何view model状态改变的时候更新。

使用KO时,你的View层主要就是简单的将HTML文档声明式的绑定到View Model,将它们关联起来。使用KO创建一个View Model,仅仅只需要声明一个JavaScript对象,例如:

var myViewModel = {personName: 'Bob',personAge: 123};

然后就可以为view model创建一个声明式绑定的简单view。例如:下面的代码显示personName 值:

The name is <span data-bind="text: personName"></span>

最后激活Knockout,只需要将下面的代码加到