knockoutjs的MVVM机制
来源:互联网 发布:复杂网络可视化软件 编辑:程序博客网 时间:2024/06/03 14:44
KnockOutJs是前端的一项技术,主要的机制是MVVM机制,所以支持双向绑定,在开发中简单了不少,他还有一些自己的特性,将在下边的小Demo中给出记录。
MVVM(即Model-View-ViewModel),开始一直不理解这三部分分别对应的是什么,直到我看到一张图才恍然大悟。View就是用来给用户展示的,即用户可以看得到的页面HTML,ViewModel将会在下边的Demo中给出解释,先简单的解释是:我们在绑定的时候需要先声明observables,相当于一个对象,存的是需要绑定到页面上的内容。Model就是我们的后台处理了。
首先我的Demo目录结构如下:
第一个展示MVVM的Demo:
<!DOCTYPE html><html><head> <title>myFirstDemo</title><meta charset="utf-8" /> <script type="text/javascript" src="../build/jquery-1.8.2.min.js"></script> <script type="text/javascript" src='../build/knockout-3.4.1.js'></script></head><body> <!--静态绑定--> <div class='liveExample'> <p>First name: <input data-bind='value: firstName' /></p> <p>Last name: <input data-bind='value: lastName' /></p> <h2>Hello, <span data-bind='text: fullName'> </span>!</h2> </div> <script> // 定义一个ViewModel var ViewModel = function (first, last) { this.firstName = ko.observable(first); this.lastName = ko.observable(last); this.fullName = ko.computed(function () { // 根据firstName和lastNamecomputed出fullName return this.firstName() + " " + this.lastName(); }, this); }; //knockout调用applybindings激活ViewModel,即,使得ViewModel与上述div中的静态绑定联系起来 ko.applyBindings(new ViewModel("zhang", "zhang")); // This makes Knockout get to work </script></body></html>
效果图展示,下边展示的内容会根据input框中的内容变化而变化,对应着代码来讲,html页就是MVVM中的View,声明的ViewModel对应的是MVVM中的ViewModel,Model对应的是进行的处理,例如上边的this.fullName对应的function:
栗子就不一一举了,如果需要,可以联系我,我们共同探讨。
阅读全文
3 0
- knockoutjs的MVVM机制
- MVVM架构~Knockoutjs系列之验证机制的引入
- ASP.NET MVC框架下使用MVVM模式 knockoutjs的实现原理
- MVVM架构~knockoutjs系列之从Knockout.Validation.js源码中学习它的用法
- knockoutjs的学习
- knockoutjs的使用
- KnockoutJS - Simplify dynamic JavaScript UIs with the MVVM pattern
- MVVM架构~knockoutjs系列之验证成功提示显示
- KnockOutJs - Web版的WPF
- KnockoutJS的使用及分析
- knockoutjs二 observableArray的使用
- knockoutjs四 foreach的绑定
- knockoutjs五 if的绑定
- knockoutjs三 text和apperance的绑定
- 完全基于KnockoutJs实现的分页查询
- 【knockoutJs】动态添加选择的Checkbox值
- wpf mvvm light 消息机制
- knockoutjs一 关于knockoutjs
- ssh 暴力破解防护
- python报错——pip升级后报错
- 金山词霸 问题
- 取文件后缀名
- FFmpeg函数简单分析:avformat_close_input()
- knockoutjs的MVVM机制
- ISO 9126质量模型:软件质量模型的6大特性和27个子特性
- insert触发器实例
- 算法分析课每周练习 LRU Cache
- ffmpeg 函数简单分析 : avcodec_decode_video2()
- keil Iar
- 深入理解Spark 2.1 Core (一):RDD的原理与源码分析
- 操作系统-CPU调度
- No such filter: 'drawtext'