Knockout.js随手记(2)】的更多相关文章

计算属性 konckout.js的API文档,写的极为详细和生动,透过MVVM的运作原理,开发时只需专注于定义ViewModel逻辑,不需耗费心力处理TextBox.Select的onchange.onclick等互动细节,就能达到UI元素与数据天人合一的境界.这一系列的konckout学习笔记,将逐一探讨knockout.js在常见网页情境上的应用.  Knockout.js随手记(1)开篇已经示范过最简单的应用,为<input>与<span>加上data-bind宣告,透过ko…
visible, disable, css绑定 这个例子非常简单,主要演示如何通过属性控制html元素的显示与否(visible),可用性(disable)以及根据属性添加相应的CSS样式. 先简单的看一段代码: <p> <input id="isvip" type='checkbox' data-bind="checked: isVip" /><label for="isvip">是否是会员</labe…
数组元素的新增/移除事件 前两篇博客已经很清楚的知道knockout.js通过observableArray()数组元素增减,可以实时的反映在UI上.当然我们想在数组增加或移除元素时加上自定义逻辑就好比一个触发器的感觉,可以吗? foreach提供了afterAdd及beforeRemove两个额外的事件,允许在数组新增.移除元素时执行特定逻辑.在此继续沿用先前的用户列表呈现范例,加上两个效果: 新增数据时,将最新加入的数据和表格进行着色修饰 删除数据时,加上数据淡出特效 而在ViewModel…
实时反映对象属性的变化 在前一篇博客中我们使用了如下代码去新增user对象,即push方法: $("#btnAddUser").click(function () { vm.users.push(new UserViewModel( $("#u_id").val(), $("#u_name").val(), parseInt($("#u_score").val()))); }); 使用 ko.computed去动态的计算use…
以列表方式呈现数据  处理以数组形式储存的多条数据,要先认识foreach.在ViewModel定义一个JavaScript Array或是ko.observableArray() (observableArray在新增或剔除数组元素时,KO会立刻察觉反应到UI,普通Array则不会),然后在某个容器元素(例如: div, ul, tbody... )声明data-bind="foreach: arrayPropName",就可以指定KO将容器内的子元素模板(Template)就会对数…
动态绑定下拉列表 在<select> data-bind的options选项如果绑定到ko.observableArray(),就可以动态新增选项效果,也就是可以利用其完成常见的级联效果的. 在这一篇文章中,我们用单页面完成无刷新的前台新增选项和使用MVC完成后台的动态添加2个例子. 范例一: ViewModel中声明一个selectOptions属性为一个ko.observableArray()对象,并将其设为<select>的options下拉列表的数据源,再用两个<in…
下拉菜单 <select>也是网页设计重要的一环,knockout.js(以下简称KO)也有不错的支持.针对<select>,在data-bind除了用value可对应下拉菜单的选取结果,其选项也可以由ViewModel中取得,甚至动态改变. 以下是<select>常用的data-bind参数: options : 指向数组或ko.observableArray(),KO会将数组元素转换为下拉选项.如果是ko.observableArray(),当动态增加或移除阵列元素…
新的开始,knockout.js 1.首先去http://knockoutjs.com/index.html下载knockout.js,最新的版本是2.3 2.知道什么是Knockout?它是个JavaScript library,帮助创建丰富的显示和编辑器UI,通过干净的底层数据模型.你可以在任何时候动态更新UI的选择部分. 3.知道knockoutjs的实现原理[MVVM模式] MVVM的优点 MVVM已在微软WPF/Silverlight/WP7中广泛应用,和MVC模式一样,主要目的是分离…
本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knockout.js 学习体验之旅](1)ko初体验 [Knockout.js 学习体验之旅](2)花式捆绑 [Knockout.js 学习体验之旅](3)模板绑定 模板引擎 页面是由数据和HTML组件构成的,如何将数据嵌入到HTML组件里面呢?一个比较好的选择是使用模板技术. 回顾下第一篇([Knock…
本文是[Knockout.js 学习体验之旅]系列文章的第2篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knockout.js 学习体验之旅](1)ko初体验 [Knockout.js 学习体验之旅](2)花式捆绑 Knockout.js 的花式捆绑 提到捆绑,相信很多邪恶的筒子以为小茄第一时间想到的是:     然而,并没有! 小茄第一时间想到的是 data-bind = "value: price&quo…