初学knockoutjs记录2-Observables监控属性

1、创建带有监控属性的view model

  knockout建有3个核心特性:

    Observables监控属性和dependency tracking依赖跟踪

    Declarative bindings 生命式绑定

    Templating 模板

  MVVM and View Models

    Model-View-View Model(MVVM) 是为了解决用户交互构建的设计模式,它通常被描述为如何将复杂的UI交互简单的分为三个部分:

    A Model: 应用程序的stored data存储数据模型,包含业务领域的对象和操作,并且是独立于UI的,当使用KO时,通常会使用Ajax调用服务端代码去读写这个存储数据模型。

    A view model: 纯code表达的UI上的数据和操作,例如你实现一个列表编辑,你的view model通常是一个包含列表项的对象,以及公开出来的添加或移除列表项的方法;注意这个并不是UI本身,它并不包含任何按钮或者显示样式的东西,它也不是持久数据模型,它拥有的是用户使用着的不保存的数据,当使用KO时,你的view model是不包含HTML相关概念的纯javascript对象,保持view model的抽象可以使其保持简单,以便你能够管理更复杂的行为而不至于迷失。

    A view: 可见的,交互式的呈现view model状态的UI,它呈现view model的信息,发送命令道view model,并且在view model有任何变化时更新它的状态,当使用KO时,你的view无非就是以声明式绑定方式绑定到view model的HTML文档,或者,你也可以使用模板基于你view model中的数据生成HTML。

  使用KO创建view model的方式如下,就像生命任何javascript对象一样

var helloViewModel = {
        firstName: "Yao",
        lastName: "Ming"
    };

    接下来可以使用声明式绑定方式为这个view model创建一个非常简单的view,例如创建一个显示firstName的标签

The first name is <span data-bind="text: firstName"></span>

  Activating knockout

    data-bind尽管很棒但是它并不是HTML原生属性(它严格遵从HTML5语法,尽管HTML4的验证器会提示有不可识别的属性但是使用它并不会有问题),但是因为浏览器并不认识它,所以需要激活knockout以便使其生效。

    激活knockout使用如下的代码块

ko.applyBindings(helloViewModel);

    你可以将这个script代码块放在HTML文档的底部,也可以将其放在页面上边并且同时将其包含在ready处理函数中,比如jQuery的$函数中。现在你的view将如同写了如下的HTML代码一样的呈现出来

The first name is <span>Yao</span>
时间: 2024-10-08 15:54:25

初学knockoutjs记录2-Observables监控属性的相关文章

初学knockoutjs记录2——Observables监控属性(2 Observable Arrays 监控数组)

1 Observable Arrays 监控数组 如果你想要监测和响应某个对象的变化,你应该使用Observable监控属性:如果你想要监测和响应一个对象集合的变化,那么请使用ObservableArray监控数组,这在很多场景下都很有用,例如当你要呈现或编辑多个值时,当你需要像列表项添加或移除一样处理UI上多个重复片段时. 例如 var myObservableArry = ko.observableArray(); // Initally an empty array myObservabl

初学knockoutjs记录8——Computed observables依赖监控(5 Computed Observables Reference 计算监控属性参考)

Computed Observables Reference 计算监控属性参考 下述文档描述了怎样构造和使用计算监控属性. Constructing a computed ovservable 构造计算监控属性 一个计算监控属性可以使用下列任一方式进行构造: 1. ko.computed ( evaluator [, targetObject, options] ) -- 这种方式是创建计算监控属性最常用的方式,支持大多数场景. evaluator -- 一个函数用来评估计算当前计算监控属性的值

初学knockoutjs记录5——Computed observables依赖监控(2 Writable computed observables可写计算监控属性)

Writable computed observables 可写计算监控属性 可写监控属性的要求较高,并且在大多数场合下并不常用. 一般来说,计算监控属性拥有一个有其它监控属性计算得来的值,也正因如此它是通常是只读的,看起来很奇怪,但是,确实有可能让计算监控属性成为可写的,你只需要提供回调函数合理的使用可写的值做一些事情. 你可以像常规的监控属性那样使用计算监控属性,只要你有自定义的逻辑用来截获所有的读写操作.就像普通监控属性一样,你可以使用链接语法编写拥有多个监控属性或计算监控属性的对象模型,

初学knockoutjs记录7——Computed observables依赖监控(4 Pure computed observables 纯计算监控属性)

Pure computed observables 纯计算监控属性 纯计算监控属性在knockout3.2.0中引入,给在大多数场合下常规的计算监控属性提供了一个速度和内存性能更好选择.这是因为纯计算监控属性在它本身没有被订阅的情况下不需要维护它的依赖. 它的特性: Prevents memore leaks 防止内存泄露.纯计算监控属性不再是一个程序引用,但是它的整个依赖依然存在. Reduces computation oberhead 减少计算开销.当值不再被监控时不再进行计算监控属性的计

2.Knockout.Js官网学习(监控属性Observables)

前言 1.创建一个ViewModel <script type="text/javascript"> //1.创建一个ViewModel var myViewModel = { personName:'aehyok', personAge:25 }; </script> 2.为ViewModel创建一个声明式绑定的简单的View The name is <span data-bind="text:personName"></

KnockoutJS 3.X API 第三章 计算监控属性(4)Pure computed observables

Pure computed observables Pure computed observables是KO在3.2.0版本中推出的.她相对于之前的ComputedObservables有很多改进: 防止内存泄漏 减少计算开销 在PureComputed函数中,随着相关监控属性值变化的时候,在两种状态之间切换. 每当它没有 值变化的时候,它处于睡眠状态.当进入睡眠状态时,其配置的所有订阅它的依赖.在这种状态下,它不会订阅任何监控属性.如果当它被读取,返回的也是睡眠状态的值. 每当它的 值变化的时

KnockoutJS(2)-监控属性

本节主要涉及到3个内容: 1. 监控属性 Observables (这个用的比较多,但是其本身使用比较简单,唯一需要注意就是,它监控的对象是一个方法,所以取值和设置值的时候容易混淆) 2. 计算属性  Computed Observable (这个在新增计算列,或者对字段属性值的读写进行验证.转换时特别有用) 3. 监控属性数组 Observable Arrays (这个用的较少,一开始不需要太深入,毕竟直接绑定数组进行简单显示的情况不多) 下面分别简单介绍一下各自的用法. 1. 监控属性Obs

第二章:监控属性(Observables)

关于Knockout的3个重要概念(Observables,DependentObservables,ObservableArray),本人无法准确表达它的准确含义,所以暂定翻译为(监控属性.依赖监控属性和监控数组),如果有好的建议请指正,多谢. 1 创建带有监控属性的view model Observables Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bind

KnockoutJS 3.X API 第三章 计算监控属性(5) 参考手册

计算监控属性构造参考 计算监控属性可使用以下形式进行构造: ko.computed( evaluator [, targetObject, options] ) - 这种形式是创建一个计算监控属性最常见的情况. evaluator - 用于返回计算值的函数. targetObject-如果给出定义的值this时KO调用回调函数.参见部分第三章 计算监控属性(1) 使用计算监控属性以获取更多信息. options - 计算监控属性的其他属性的对象.请参见下面的完整列表. ko.computed(