摘要: 关于本系列文章 本系列文章总共8个章节,41篇文章,主要翻译自官方API文档,加上自己的一些理解撰写而成。 区别于园子和网络上的其它一些Knockout教程,这个系列教程将由浅入深的系统的介绍Knockout的知识点和使用细节。 并且本系列KnockoutJS教程是基于最新的3.4.0版本入手的。对 阅读全文
posted @ 2016-10-19 13:36 SmallProgram 阅读(25173) 评论(7) 推荐(11) 编辑
摘要: Knockout旨在允许您将任意JavaScript对象用作视图模型。 只要一些视图模型的属性是observables,您可以使用KO将它们绑定到您的UI,并且UI将在可观察属性更改时自动更新。 大多数应用程序需要从后端服务器获取数据。 由于服务器没有任何可观察的概念,它只提供一个纯JavaScript对象(通常序列化为JSON)。 映射插件提供了一种简单的方法来将该简单的JavaScript对象... 阅读全文
posted @ 2016-10-19 13:08 SmallProgram 阅读(3275) 评论(1) 推荐(5) 编辑
摘要: 注意:本文档适用于Knockout 3.4.0及更高版本。 ko.onError Knockout包装内部异步调用,并在抛出原始错误之前查找可选的ko.onError回调以执行(如果遇到异常)。 这使您有机会运行自定义逻辑,例如将错误传递到日志记录模块。 此外,由于原始调用被包装在try / catch中,传递给ko.onError的错误包含一个堆栈属性,在使用window.onerror处理错误... 阅读全文
posted @ 2016-10-19 11:29 SmallProgram 阅读(811) 评论(0) 推荐(0) 编辑
摘要: 注意:本文档适用于Knockout 3.4.0及更高版本。 Knockout的微任务队列 Knockout的微任务队列支持调度任务尽可能快地运行,同时仍然是异步的,努力安排它们在发生I / O,回流或重绘之前发生。 它在内部用于Knockout组件以维护异步行为,以及用于安排可观察量的延迟更新。 ko.tasks.schedule(function () { // ... }); 这将把提... 阅读全文
posted @ 2016-10-19 11:26 SmallProgram 阅读(1010) 评论(0) 推荐(1) 编辑
摘要: 有时,您可能会通过向Knockout的核心值类型添加新功能来寻找机会来简化您的代码。 您可以在以下任何类型中定义自定义函数: 因为继承,如果你附加一个函数到ko.subscribable,它将可用于所有其他的。 如果你附加一个函数到ko.observable,它将被ko.observableArray继承而不是ko.computed继承。 要附加自定义函数,请将其添加到以下可扩展性点之一:... 阅读全文
posted @ 2016-10-19 11:13 SmallProgram 阅读(1043) 评论(0) 推荐(1) 编辑
摘要: 在大多数情况下,数据绑定属性提供了一种干净和简洁的方式来绑定到视图模型。 然而,事件处理是一个常常会导致详细数据绑定属性的领域,因为匿名函数通常是传递参数的推荐技术。 例如: remove 作为替代,Knockout提供了两个帮助函数,它们允许您标识与DOM元素关联的数据: ko.dataFor(element) - 返回可用于与元素绑定的数据 ko.contextFor(ele... 阅读全文
posted @ 2016-10-19 11:05 SmallProgram 阅读(831) 评论(0) 推荐(1) 编辑
摘要: 注意:这个速率限制API是在Knockout 3.1.0中添加的。 通常,更改的observable立即通知其订户,以便依赖于observable的任何计算的observable或绑定都会同步更新。 但是,rateLimit扩展器会导致observable在指定的时间段内抑制和延迟更改通知。 因此,速率限制的observable异步更新依赖关系。 速率限制扩展器可以应用于任何类型的可观察量,包... 阅读全文
posted @ 2016-10-19 10:55 SmallProgram 阅读(878) 评论(0) 推荐(0) 编辑
摘要: 注意:本文档适用于Knockout 3.4.0及更高版本。 对于先前版本,“延迟更新”插件提供类似的支持。 在复杂的应用程序中,由于具有多个交织的依赖关系,更新单个observable可能会触发计算的observable,手动订阅和UI绑定更新的级联。 如果将不必要的中间值推送到视图或产生额外的计算的可观察评估,则这些更新可能是昂贵的和低效的。 即使在简单的应用程序中,更新相关的可观察量或单个可... 阅读全文
posted @ 2016-10-19 10:35 SmallProgram 阅读(1247) 评论(0) 推荐(0) 编辑
摘要: Knockout observables提供了支持读取/写入值并在值改变时通知订阅者所需的基本功能。 但在某些情况下,您可能希望向可观察者添加其他功能。 这可能包括通过在可观察者前面放置一个可写的计算可观察符来向可观察或截取写入添加额外的属性。 敲除扩展器提供了一种简单和灵活的方式来对可观察者进行这种类型的扩充。 如何创建扩展器 创建扩展器涉及向ko.extenders对象添加一个函数。 函数接受... 阅读全文
posted @ 2016-10-19 10:15 SmallProgram 阅读(1048) 评论(0) 推荐(0) 编辑
摘要: Knockout允许您实现复杂的客户端交互性,但几乎所有Web应用程序还需要与服务器交换数据,或至少将本地存储的数据序列化。 最方便的交换或存储数据的方式是JSON格式 - 大多数Ajax应用程序今天使用的格式。 加载或保存数据 Knockout不强制您使用任何一种特殊技术来加载或保存数据。 您可以使用任何适合您所选择的服务器端技术的机制。 最常用的机制是jQuery的Ajax方法,例如getJS... 阅读全文
posted @ 2016-10-19 09:54 SmallProgram 阅读(1547) 评论(0) 推荐(1) 编辑