Knockout学习之组合监控属性】的更多相关文章

组合监控属性 顾名思义,就是我们可以将多个属性合并为一个属性.这样在显示的时候就是整体了,并且其中任何一个属性发生改变,这个属性也都会随之发生改变从而更新视图,而这些只需要使用computed函数就可以实现,比如下面的代码我们将firstName和lastName合并为fullName属性,并呈现: <span data-bind="text: fullName" /> <script type="text/javascript"> func…
MVVM和viewModel Knockout是建立在以下三大核心功能之上的: 监控属性和依赖跟踪(Observables and dependency tracking) 声明式绑定(Declarative bindings) 模板(Templating) 首先让我们先来了解下MVVM模式,和viewModel的概念. MVVM(model.view.viewModel)是一种创建用户界面的设计模式,他旨在将一个复杂的UI简单的分割为三个部分: model : 在你的应用用作存储数据: vie…
监控属性 Knockout包含以下三个核心特性: 1.监控属性和依赖跟踪 2.显式绑定 3.模板 下面我们将学习这三点中的第一点,在这之前我们先研究下MVVM模式和视图模型的概念. MVVM和视图模型 模型:用来存储应用中的数据.它处于业务领域中,并且包含了相关的属性以及操作,与用户界面独立.在使用OK时,你将经常使用ajax保持该模型与服务端同步. 视图模型:使用纯代码表示界面的数据和操作.比如,你要实现一个列表编辑功能,那么你的视图模型就需要维持一组数据项,同时还要提供添加和删除方法. 视图…
前言 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"></…
最近抽出点时间研究MVVM,包括司徒正美的avalon,google的angular,以及Knockout,博客园Tom的Knockout指南 时隔2年了,ko更新了不少,所以文档也相应的变化了,所以本人从学习的角度就翻译下官方的新的教程文章. avalon就是从KO演变过来的,不过加入ng,emberjs等框架的特色,加入许多巧妙的设计,算是很短小精悍的框架了,大家有兴趣可以对比下. Knockout是构建在3个核心的特性上的: 监控属性(Observables)和依赖跟踪(Dependenc…
监控数组 单个监控属性.组合属性虽然可以解决大部分的问题,但是还有很多是他们无法做到的,比如在一组数据中进行移除添加,所以这节我们将要学习监控数组. 由于监控属性是由ko的observable构造,那么对应的数组则由observableArray构造,比如下面的代码: var myObservableArray = ko.observableArray(); myObservableArray.push("asd"); 这里我们通过push添加了一项,ko提供的监控数组跟javascr…
Observables,这个词的翻译来自汤姆大叔,对于部分翻译不是很准确的,欢迎大家留言,以得到更好的翻译. Knockout是建立在以下3个核心功能之上的: 1.    属性监控与依赖跟踪 2.    声明式绑定 3.    模版机制 在本节中,我们将学习3个核心里面的第一个.但在这之前,先让我们学习一下MVVM设计模式和View Model的概念. MVVM和View Models Model-View-View Model (MVVM)是一种创建用户界面的设计模式.通过它只要将UI界面分成…
一.语法介绍 先来看一个简单的例子: <span data-bind="text:name"></span> var obj = {name:ko.observable("tom")} ko.applyBindings(obj); 这样会自动完成绑定.其中有3个特别的地方:1. data-bind.2.ko.observable 方法. 3.ko.applyBindings 方法. 1.1 data-bind data-bind 并不是htm…
前言 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"></…
原文:Knockout应用开发指南 第二章:监控属性(Observables) 关于Knockout的3个重要概念(Observables,DependentObservables,ObservableArray),本人无法准确表达它的准确含义,所以暂定翻译为(监控属性.依赖监控属性和监控数组),如果有好的建议请指正,多谢. 1     创建带有监控属性的view model Observables Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪…
1 创建带有监控属性的view model 1.1 Observables Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bindings) 模板(Templating) 1.2 MVVM and View Models Model-View-View Model (MVVM) 是一种创建用户界面的设计模式. 描述的是如何将复杂的UI用户界面分成3个部分: model…
PS:这个翻译系列好久都没有更新了,实在是不应该,一方面是由于时间不多,另一方面也由于自身惰性太大,从今天起接着更新,会在最近的一月内把这个系列中文API文档翻译完整. 如果你想侦测并响应一个对象的变化,你需要使用observables.如果你想侦测并响应一个集合对象的变化,你需要使用observableArray.这在很多情况下,都显得非常有用,比如你想操作UI上的一组数据,控制其显示或编辑.添加或删除等. 示例 var myObservableArray = ko.observableArr…
如果想发现并响应一个对象的变化,就应该使用监控属性(observables),如果想发现并响应一个集合的变化,就需要使用监控属性数组(observableArray).在很多情况下,它都非常有用,比如你要在UI上需要显示/编辑的一个列表数据集合,然后对集合进行添加和删除. 声明ObservableArray var myObservableArray = ko.observableArray(); myObservableArray.push("some value"); 将一个对象放…
关于knockout学习系列的文章已经写完,这里主要是做个总结,并且将目录罗列出来,方便查看.欢迎各位大神拍砖和讨论. 总结 kncokout是一个轻量级的UI类库,通过MVVM模式使前端的UI简单话,减少javascript代码的编写.通常说到javascript类库,首先都会想到jquery,jquery通过对js的封装实现了:write less,do more,它可以帮助我们减少很多代码,解决浏览器兼容问题:代码量减少了,维护成本也就降低了.knockout与jquery并不冲突,而且可…
Knockout是建立在以下3个核心功能之上的: 1. 属性监控与依赖跟踪 2. 声明式绑定 3. 模版机制 在本节中,我们将学习3个核心里面的第一个.但在这之前,先让我们学习一下MVVM设计模式和View Model的概念. Model-View-View Model (MVVM)是一种创建用户界面的设计模式.通过它只要将UI界面分成以下3个部分,就可以使复杂的界面变得简单: 1.Model,用于存 储你应用程序数据,这些数据表示你业务领域的对象和数据操作(例如:银行可以进行资金转账),并且独…
KO是如何实现自动更新的 初学者可以掠过该篇,如果你是一个刨根问底的开发者,那本节将告诉你KO是如何实现依赖追踪和UI自动更新的. 其实很简单,KO的依赖追踪算法如下: 当你声明一个计算监控属性,KO立即调用其相关的函数来获取其初始值. 当相关函数正在运行,KO将建立一个订阅到相关监控属性(包括其他计算监控属性)并读取他们的值.订阅回调函数设置为订阅函数再次运行,循环的这个过程. 当有新的值,KO会通知你的计算监控属性将值反馈给用户. 采用PEEK控制依赖 Knockout的自动依赖跟踪通常不是…
原文链接:MongoDB的学习--索引类型和属性 索引类型 MongDB的索引分为以下几种类型:单键索引.复合索引.多键索引.地理空间索引.全文本索引和哈希索引 单键索引(Single Field Indexes) 在一个键上创建的索引就是单键索引,单键索引是最常见的索引,如MongoDB默认创建的_id的索引就是单键索引. 例子: { "_id" : ObjectId(...), "name" : "Alice", "score&qu…
控制流绑定器 “foreach”绑定 顾名思义,通过该绑定我们就可以将监控数组循环输出到页面中去了,当然我们还是先来段简单的示例,仅仅只是输出监控数组: <ul data-bind="foreach:people" > <li data-bind="text:Name"></li> </ul> <script type="text/javascript"> var appViewMode…
关于Knockout的3个重要概念(Observables,DependentObservables,ObservableArray),本人无法准确表达它的准确含义,所以暂定翻译为(监控属性.依赖监控属性和监控数组),如果有好的建议请指正,多谢. 1 创建带有监控属性的view model Observables Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bind…
监控属性数组 如果要对一个对象检测和响应变化,会使用监控属性.如果要对一个序列检测并监控变化,需要使用observableArray(监控属性数组).这在你显示或编辑多个值,需要用户界面的部分反复出现和消失的项目并且具有添加和删除操作的情况下使用observableArray. 例如声明并赋值: var myObservableArray = ko.observableArray(); // Initially an empty array myObservableArray.push('Som…
计算监控属性(Computed Observables) 如果你有一个监控属性firstName,和另一个lastName,你要显示的全名?可以使用计算监控属性来实现-它依赖于一个或多个其他监控属性,每当这些依赖关系的监控属性改变时将会自动更新计算监控属性. 例如,下面的视图模型: function AppViewModel() { this.firstName = ko.observable('Bob'); this.lastName = ko.observable('Smith'); } 可…
.liveexample{ padding: 1em; background-color: #eeeedd; border: 1px solid #ccc; max-width: 655px; font-size:18px; 可赋值的计算监控属性 可赋值的计算监控属性是非常专业的,大多数情况下一般用不到,初学者可以跳过这一节 通常情况下,计算监控属性一般情况下是只读的.我们可以通过使用自己的回调函数让计算监控属性变为可赋值状态. 您可以用自己的定制逻辑让计算监控属性可写.就像将空属性,可以使用一…
Pure computed observables Pure computed observables是KO在3.2.0版本中推出的.她相对于之前的ComputedObservables有很多改进: 防止内存泄漏 减少计算开销 在PureComputed函数中,随着相关监控属性值变化的时候,在两种状态之间切换. 每当它没有 值变化的时候,它处于睡眠状态.当进入睡眠状态时,其配置的所有订阅它的依赖.在这种状态下,它不会订阅任何监控属性.如果当它被读取,返回的也是睡眠状态的值. 每当它的 值变化的时…
计算监控属性构造参考 计算监控属性可使用以下形式进行构造: ko.computed( evaluator [, targetObject, options] ) - 这种形式是创建一个计算监控属性最常见的情况. evaluator - 用于返回计算值的函数. targetObject-如果给出定义的值this时KO调用回调函数.参见部分第三章 计算监控属性(1) 使用计算监控属性以获取更多信息. options - 计算监控属性的其他属性的对象.请参见下面的完整列表. ko.computed(…
web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用,提供了一个QuartzInitializerServlet和一个QuartzInitializerListener,用于在加载web应用时,对quartz进行初始化. <servlet> <servlet-name> QuartzInitializer </servlet-na…
Knockout.js是什么? Knockout是一款很优秀的JavaScript库,它可以帮助你仅使用一个清晰整洁的底层数据模型(data model)即可创建一个富文本且具有良好的显示和编辑功能的用户界面.任何时候你的局部UI内容需要自动更新(比如:依赖于用户行为的改变或者外部的数据源发生变化),KO都可以很简单的帮你实现,并且非常易于维护. KO重要特性: 优雅的依赖跟踪-任何时候当数据源模型发生变化时,它都能够自动的更新你UI的指定内容. 声明式绑定-它通过简单浅显的方式将你的UI与数据…
本节主要涉及到3个内容: 1. 监控属性 Observables (这个用的比较多,但是其本身使用比较简单,唯一需要注意就是,它监控的对象是一个方法,所以取值和设置值的时候容易混淆) 2. 计算属性  Computed Observable (这个在新增计算列,或者对字段属性值的读写进行验证.转换时特别有用) 3. 监控属性数组 Observable Arrays (这个用的较少,一开始不需要太深入,毕竟直接绑定数组进行简单显示的情况不多) 下面分别简单介绍一下各自的用法. 1. 监控属性Obs…
文本和外观绑定器 “visible”绑定 该绑定主要用来让我们通过监控属性可以控制html文档的显示,只要绑定的监控属性为false.0.null或者undefined则隐藏该标签,否则显示.比如下面的示例: <span data-bind="visible:visibleState">显示了</span> <div> <button type="button" data-bind="click:show"…
avalon的ViewModel对象从其内部EventManager里继承了三个方法,$watch.$unwatch.$fire三个方法,它们就是我们本节的主题. 词如其名,非常直白,一看就知道做什么.我们先从$watch方法说起,它能监听当前的VM第一层的监控属性 与 计算属性,如果某属性是一个对象,想监控其子孙属性,就需要定位到此对象上使用$watch回调了.$watch回调会默认传入先后两个属性值. <!DOCTYPE html> <html> <head> &l…
原文:WPF 学习笔记-设置属性使窗口不可改变大小 调整Windows下的ResizeMode属性: ResizeMode = NoResize Resize属性是控制Windows是否可以改变大小,怎样改变大小的属性.ResizeMode的所有枚举如下:   成员名称 说明   NoResize 无法调整窗口的大小.标题栏中不显示“最小化”和“最大化”按钮.   CanMinimize 只能最小化和还原窗口.同时显示“最小化”和“最大化”按钮,但只有“最小化”按钮处于启用状态.   CanRe…