打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JavaScript实现的MVVM框架Knockoutjs使用入门

 Knockoutjs是一个JavaScript实现的MVVM框架。主要有如下几个功能:

1. Declarative bindings

2. Observables and dependency tracking

3. Templating

  1. 它对于分离前台的业务逻辑和视图简化数据绑定过程有显著的作用。闲言少叙,直接看例子,如何下载也不说了,如果用VS开发的话用Nuget就可以一键搞定。
  2. 1. 基本绑定和依赖跟踪

首先需要定义一个ViewModel:

  1. <script type="text/javascript"> 
  2.     function ViewModel() { 
  3.         this.firstName = "Zixin"; 
  4.         this.lastName = "Yin"; 
  5.     } 
  6. </script> 

然后是一个用来显示这个ViewModel的View:

  1. <div> 
  2.     <p data-bind="text: firstName"></p> 
  3.     <p data-bind="text: firstName"></p> 
  4.     <input data-bind="value: firstName"/>  
  5.     <input data-bind="value: lastName"/>  
  6. </div> 

从这个view中可以看到声明式绑定的含义,只需要在标签上使用data-bind属性,就可以将数据的值绑定到相应的地方。有了View和ViewModel还需要代码将这两者关联起来:

  1. ko.applyBindings(new ViewModel()); 

将他们放到一起,注意,applyBinding那代码必须在页面全部加载完之后执行。页面显示为:

下面再看observables,这个功能不是与生俱来的,必须要把View Model设置为observable,方法如下:

  1. function ViewModel() { 
  2.      this.firstName = ko.observable("Zixin"); 
  3.      this.lastName = ko.observable("Yin"); 
  4.  } 

其他都不需要改变,这时候,如果改变输入框中的值,当焦点离开的时候,可以发现p中的值也跟着改变了:

下面再看dependency tracking,也就是如果一个值依赖多各值,其中任何一个值发生变化,它都会自动发生变化. 这是通过computed方法实现的,代码如下:

  1. function ViewModel() { 
  2.      this.firstName = ko.observable("Zixin"); 
  3.      this.lastName = ko.observable("Yin"); 
  4.      this.fullName = ko.computed(function () { return this.lastName() + " " + this.firstName(); },this); 
  5.  }  

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Knockout应用开发指南 第二章:监控属性(Observables)
從Knockout到AngularJS
iOS 架构模式
MVVM 介绍
MVVM With ReactiveCocoa
knockout 笔记--API
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服