在好例子网,分享、交流、成长!
您当前所在位置:首页js 开发实例Ajax框架/RIA → knockout 入门级实例源码下载

knockout 入门级实例源码下载

Ajax框架/RIA

下载此实例
  • 开发语言:js
  • 实例大小:0.04M
  • 下载次数:13
  • 浏览次数:424
  • 发布时间:2017-05-28
  • 实例类别:Ajax框架/RIA
  • 发 布 人:crazycode
  • 文件格式:.zip
  • 所需积分:2
 相关标签: knockout

实例介绍

【实例简介】

入门

简介

Knockout有如下4大重要概念:

  • 声明式绑定 (Declarative Bindings):使用简明易读的语法很容易地将模型(model) 数据关联到DOM元素上。
  • UI界面自动刷新 (Automatic UI Refresh):当您的模型状态(model state)改变时,您的UI界面将自动更新。
  • 依赖跟踪 (Dependency Tracking):为转变和联合数据,在你的模型数据之间隐式建立关系。
  • 模板 (Templating):为您的模型数据快速编写复杂的可嵌套的UI。

好处

重要特性:

  • 优雅的依赖追踪- 不管任何时候你的数据模型更新,都会自动更新相应的内容。
  • 声明式绑定- 浅显易懂的方式将你的用户界面指定部分关联到你的数据模型上。
  • 灵活全面的模板- 使用嵌套模板可以构建复杂的动态界面。
  • 轻易可扩展- 几行代码就可以实现自定义行为作为新的声明式绑定。 额外的好处:
  • 纯JavaScript类库 – 兼容任何服务器端和客户端技术
  • 可添加到Web程序最上部 – 不需要大的架构改变
  • 简洁的 – Gzip之前大约25kb
  • 兼容任何主流浏览器 (IE 6 、Firefox 2 、Chrome、Safari、其它)
  • Comprehensive suite of specifications (采用行为驱动开发) 意味着在新的浏览器和平台上可以很容易通过验证。

Knockout绑定语法

visible 绑定

当参数设置为一个假值时(例如:布尔值false, 数字值0, 或者null, 或者undefined) ,该绑定将设置该元素的style.display值为none,让元素隐藏。它的优先级高于你在CSS里定义的任何display样式。

当参数设置为一个真值时(例如:布尔值true,或者非空non-null的对象或者数组) ,该绑定会删除该元素的style.display值,让元素可见。然后你在CSS里自定义的display样式将会自动生效。

如果参数是监控属性observable的,那元素的visible状态将根据参数值的变化而变化,如果不是,那元素的visible状态将只设置一次并且以后不在更新。 注:使用函数或者表达式来控制元素的可见性

text 绑定

KO将参数值会设置在元素的innerText (IE)或textContent(Firefox和其它相似浏览器)属性上。原来的文本将会被覆盖。

如果参数是监控属性observable的,那元素的text文本将根据参数值的变化而更新,如果不是,那元素的text文本将只设置一次并且以后不在更新。

如果你传的不是数字或者字符串(例如一个对象或者数组),那显示的文本将是yourParameter.toString()的等价内容。(object)

注1:使用函数或者表达式来决定text值 如果你想让你的text更可控,那选择是创建一个依赖监控属性(dependent observable), 然后在它的执行函数里编码,决定应该显示什么样的text文本。 注2:关于HTML encoding 设置元素的innerText或textContent (而不是innerHTML) 关于IE 6的白空格whitespace Welcome, <span data-bind="text: userName"></span> to our web site.->Welcome, <span data-bind="text: userName">&nbsp;</span> to our web site.

html 绑定

html绑定到DOM元素上,使得该元素显示的HTML值为你绑定的参数。如果在你的view model里声明HTML标记并且render的话,那非常有用。 KO设置该参数值到元素的innerHTML属性上,元素之前的内容将被覆盖。

css 绑定

该参数是一个JavaScript对象,属性是你的CSS class名称,值是比较用的true或false,用来决定是否应该使用这个CSS class。 非布尔值会被解析成布尔值。例如, 0和null被解析成false,21和非null对象被解析成true。

应用的CSS class的名字不是合法的JavaScript变量命名 如果你想使用my-class 在my-class两边加引号作为一个字符串使用

style 绑定

style绑定是添加或删除一个或多个DOM元素上的style值 该参数是一个JavaScript对象,属性是你的style的名称,值是该style需要应用的值。 你可以一次设置多个style值

应用的style的名字不是合法的JavaScript变量命名 错误: { font-weight: someValue }; 正确: { fontWeight: someValue }

错误: { text-decoration: someValue }; 正确: { textDecoration: someValue }

attr 绑定

attr 绑定提供了一种方式可以设置DOM元素的任何属性值 该参数是一个JavaScript对象,属性是你的attribute名称,值是该attribute需要 应用的值。 应用的属性名字不是合法的JavaScript变量命名 如果你要用的属性名称是data-something的话 解决方案是:在data-something两边加引号作为一个字符串使用

click 绑定

click绑定在DOM元素上添加事件句柄以便元素被点击的时候执行定义的JavaScript 函数 注1:传参数给你的click 句柄

<button data-bind="click: function() { viewModel.myFunction(1, 2) }"> Click me </button> 

注2:访问事件源对象 myFunction: function (event) 如果你需要的话,可以使用匿名函数的第一个参数传进去,然后在里面调用: 注3: 允许执行默认事件 默认情况下,Knockout会阻止冒泡,防止默认的事件继续执行。例如,如果你点击一个a连接,在执行完自定义事件时它不会连接到href地址。这特别有用是因为你的自定义事件主要就是操作你的view model,而不是连接到另外一个页面。

当然,如果你想让默认的事件继续执行,你可以在你click的自定义函数里返回true。 注4:控制this句柄 注5:防止事件冒泡 clickBubble 可以通过额外的绑定clickBubble来禁止冒泡

event 绑定

大部分情况下是用在keypress,mouseover和mouseout上。

你可以声明任何JavaScript函数 – 不一定非要是view model里的函数。你可以声明任意对象上的任何函数,例如: event: { mouseover: someObject.someFunction }。

View model上的函数在用的时候有一点点特殊,就是不需要引用对象的,直接引用函数本身就行了,比如直接写event: { mouseover: enableDetails } 就可以了,而无需写成: event: { mouseover: viewModel.enableDetails } (尽管是合法的)。

submit 绑定

浏览器会执行你定义的绑定函数而不会提交这个form表单到服务器上。可以很好地解释这个,使用submit绑定就是为了处理view model的自定义函数的,而不是再使用普通的HTML form表单。如果你要继续执行默认的HTML form表单操作,你可以在你的submit句柄里返回true。

enable 绑定

enable绑定使DOM元素只有在参数值为 true的时候才enabled。在form表单元素input,select,和textarea上非常有用。 非布尔值会被解析成布尔值。例如0和null被解析成false,21和非null对象被解析给true。

disable 绑定

disable绑定使DOM元素只有在参数值为 true的时候才disabled。在form表单元素input,select,和textarea上非常有用。

disable绑定和enable绑定正好相反,详情请参考enable绑定。

value 绑定

当用户编辑表单控件的时候, view model对应的属性值会自动更新。同样,当你更新view model属性的时候,相对应的元素值在页面上也会自动更新。

其它参数 valueUpdate 如果你使用valueUpdate参数,那就是意味着KO将使用自定义的事件而不是默认的离开焦点事件。下面是一些最常用的选项: change(默认值) - 当失去焦点的时候更新view model的值,或者是 keyup – 当用户敲完一个字符以后立即更新view model。 keypress – 当用户正在敲一个字符但没有释放键盘的时候就立即更新view model。不像 keyup,这个更新和keydown是一样的。 afterkeydown – 当用户开始输入字符的时候就更新view model。主要是捕获浏览器的keydown事件或异步handle事件。 checked 绑定 checked绑定是关联到checkable的form表单控件到view model上 - 例如checkbox()或者radio button() 。当用户check关联的form表单控件的时候,view model对应的值也会自动更新,相反,如果view model的值改变了,那控件元素的check/uncheck状态也会跟着改变。

options 绑定

options绑定控制什么样的options在drop-down列表里(例如:)或者 multi-select 列表里 (例如:)显示。此绑定不能用于之外的元素。关联的数据应是数组(或者是observable数组),会遍历显示数组里的所有的项。 optionsCaption值是字符串型,作为默认项显示 KO会在所有选项上加上这一个项,并且设置value值为undefined。所以,如果myChosenValue被设置为undefined(默认是observable的),那么上述的第一个项就会被选中。 optionsText列表的text来显示 optionsValue该的value值 selectedOptions

selectedOptions 绑定

selectedOptions绑定用于控制multi-select列表已经被选择的元素,用在使用options绑定的元素上。 uniqueName 绑定 uniqueName绑定确保所绑定的元素有一个非空的name属性。如果该元素没有name属性,那绑定会给它设置一个unique的字符串值作为name属性。 tips 循环嵌套 对象用observableArray监视

【实例截图】
【核心代码】

标签: knockout

实例下载地址

knockout 入门级实例源码下载

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警