- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第⼆章:监控属性(Observables)
1 创建带有监控属性的view model
Observables
Knockout是在下⾯三个核⼼功能是建⽴起来的:
1. 监控属性 (Observables )和依赖跟踪 (Dependency tracking )
2. 声明式绑 (Declarative bindings )
3. 模板 (Templating )
这⼀节,你讲学到3个功能中的第⼀个。 在这之前, 我们来解释⼀下MVVM模式和
view model的概念。
MVVM and View Models
Model View View Model (MVVM) 是⼀种创建⽤户界⾯的设计模式。 描述的是如何将
复杂的UI⽤户界⾯分成3个部分:
model: 你程序⾥存储的数据。这个数据包括对象和业务操作 (例如:银⼦账户
可以完成转账功能), 并且独⽴于任何UI 。使⽤KO的时候,通常说是向服务
器调⽤Aj ax读写这个存储的模型数据。
view model: 在UI上,纯code描述的数据以及操作。例如,如果你实现列表编
辑,你的view model应该是⼀个包含列表项items的对象和暴露的add/remove列
表项 (item )的操作⽅法。
注意这不是UI本⾝:它不包含任何按钮的概念或者显⽰风格。它也不是持续
数据模型 – 包含⽤户正在使⽤的未保存数据。使⽤KO的时候,你的view models是不
包含任何HTML知识的纯JavaScript 对象。保持view model抽象可以保持简单,以便你
能管理更复杂的⾏为。
view: ⼀个可见的,交互式的,表⽰view model状态的UI 。 从view model显⽰数
据,发送命令到view model (例如:当⽤户click按钮的时候) ,任何view
model状态改变的时候更新。
使⽤KO的时候,你的view就是你带有绑 信息的HTML⽂档,这些声明式的绑 管理
到你的view model上。或者你可以使⽤模板从你的view model获取数据⽣成HTML 。
创建⼀个view model ,只需要声明任意的JavaScript object 。例如:
var myViewModel = {
personName: Bob,
personAge: 123
}
你可以为view model创建⼀个声明式绑 的简单view 。例如:下⾯的代码显⽰
personName 值:
The name is span data-bind=text: personName/span
Activating Knockout
data bind属性尽快好⽤但它不是HTML 的原⽣属性 (它严格遵从HTML5语法, 虽然
HTML4验证器提⽰有不可识别的属性但依然可⽤)。由于浏览器不识别它是什么意
思,所以你需要激活Knockout 来让他起作⽤。
激活Knockout ,需要添加如下的 代码块:
ko.applyBindings(myViewModel)
你可以将这个代码块放在HTML底部,或者放在j Query的$函数或者ready 函数⾥,然
后放在页⾯上⾯, 最终⽣成结果就是如下的HTML代码:
The name is spanBob/span
你可能奇怪ko .applyBindings使⽤的是什么样的参数,
第⼀个参数是你想⽤于声明式绑
第⼆个参数 (可选),可以声明成使⽤data bind的HTML元素或者容器。例
如, ko .applyBindings(myViewModel ,
document .getElementById(someElementId)) 。它的现在是只有作为
someElementId 的元素和⼦元素才能激活KO功能。 好处是你可以在同⼀个页⾯
声明多个view model ,⽤来区分区域。
Observables
现在已经知道如何创建⼀个简单的view model并且通过binding显⽰它的属性了。但是
KO⼀个重要的功能是当你的view model改变的时候能⾃动更新你的界⾯。当你的view
model部分改变的时候KO是如何知道的呢?答案是:你需要将你的model属性声明成
observable的,
您可能关注的文档
- 第二讲 32位PC机汇编程序设计环境.ppt
- DOS 概述与入门 - 副本 - 副本.doc
- DOS 概述与入门.doc
- DOS功能大全副本.doc
- 第二讲 Linux命令.ppt
- DOS命令教程副本.docx
- DOS启动之CONFIG.sys配置详解副本.doc
- DOS修复硬盘副本.doc
- 第二讲 Linux下GCC程序开发环境.ppt
- 第二讲 MATLAB的基本使用方法.ppt
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
最近下载
- 会计学原理23版 英文版课件WildFAP23eCh05PPT.pptx
- 华为公司职类职种职级体系的划分及职业发展通道设计.pdf VIP
- 建筑解析流水别墅.pptx
- 2025届高三英语复习语法填空专题(24张PPT).pptx VIP
- 基于PLC的磨矿控制系统设计.docx
- 有限元分析论文.doc VIP
- 苏教版小学科学五年级上册第四单元《水在自然界的循环》大单元教学设计(含练习).docx
- 聚氯乙烯热收缩膜标签验收标准.doc VIP
- 2023年安徽省高中学业水平合格性考试数学试卷真题(含答案详解) (2).pdf VIP
- 2025届江苏省南菁高级中学物理高一第一学期期中达标检测模拟试题含解析.doc
文档评论(0)