前端MVVM学习之KnockOut(二)

现在开始学习Knockout并且做个简单的例子。

Knockout是建立在以下三个核心功能之上的:

1、Observables and dependency tracking(属性监控与依赖跟踪)

2、Declarative bindings(声明式绑定)

3、Templating(模板机制)

创建一个ViewModel

 var myViewModel = {
personName: ko.observable('张三'),
personAge: ko.observable()
};

将属性绑定到View

<div>
<span data-bind="text: personName"></span>
</div>

将ViewModel一般应用到View中

$(function() {
ko.applyBindings(myViewModel);
});

最后源码如下:  

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Knockout学习一</title>
<script src="Scripts/knockout-3.0.0.js" type="text/javascript"></script>
<script src="Scripts/jquery-1.10.2.min.js" type="text/javascript"></script>
</head>
<body> <div>
<span data-bind="text: personName"></span>
</div> </body>
<script type="text/javascript">
var myViewModel = {
personName: ko.observable('张三'),
personAge: ko.observable()
}; $(function() {
ko.applyBindings(myViewModel);
}); </script>
</html>

前端将会显示出张三,其中我们为属性设定了Observables属性,即属性监控,这样personName数据若有变化,则会自动更新到View中,实现了数据的双向绑定。
applyBindings也可以有两个参数:ko.applyBindings(myViewModel, document.getElementById('someElementId')) 后一个参数是可选的,表示一个标签的id,若设置了该参数,则表示myViewModel只作用于该标签内的View,通过该参数,可以使一个页面对应多个ViewModel。

简单的knockout例子就到这里。

上一篇:java 求取某一段时间内的每一天、每一月、每一年


下一篇:python 偏函数