首页 / 知识
Knockout.Js中的Observables监控属性
2023-04-11 13:23:00

Knockout.Js中的Observables监控属性
KO一个重要的功能是当你的view model改变的时候能自动更新你的界面。当你的view model部分改变的时候KO是如何知道的呢?答案是:你需要将你的model属性声明成observable的, 因为它是非常特殊的JavaScript objects,能够通知订阅者它的改变以及自动探测到相关的依赖。
var myViewModel = {
personName: ko.observable('aehyok'),
personAge: ko.observable(25)
};
你根本不需要修改view – 所有的data-bind语法依然工作,不同的是他能监控到变化,当值改变时,view会自动更新。
监控属性的读操作(read)
///监控属性的读操作(read)
alert(myViewModel.personAge);
监控属性的写操作(write)
///监控属性的写操作(write)
myViewModel.personName("aehyok-Test");
Dependent Observables依赖监控属性
如果你已经有了监控属性firstName和lastName,你想显示全称怎么办? 这就需要用到依赖监控属性了 – 这些函数是一个或多个监控属性, 如果他们的依赖对象改变,他们会自动跟着改变。
例如:继续在上面的ViewModel中添加两个属性 firstName和lastName
var myViewModel = {
personName: ko.observable('aehyok'),
personAge: ko.observable(25),
firstName: ko.observable('aehyok'),
lastName: ko.observable('Leo')
};
并且添加一个依赖监控属性,来返回姓名的全称
///依赖监控属性
myViewModel.fullName = ko.dependentObservable(function () {
return this.firstName() + " " + this.lastName();
}, myViewModel);
并且绑定到View视图界面上的元素
The fullname is <span data-bind="text: fullName"></span>
|
最新内容
相关内容
python字典和json的比较
python字典和json的比较,数据,位置,培训,概念,字典,对象,格式,前端,缩写,字符串,python字典和json的比较1、概念不同(1)dict是一个完整的数据如何最好地共享VB6中的可嵌入表单?
如何最好地共享VB6中的可嵌入表单?,如何最好地共享VB6中的可嵌入表单?,表单,对象,方法,我想,How do I best share an embeddable form关于WPF中的c#:数值数据输入
关于WPF中的c#:数值数据输入,关于WPF中的c#:数值数据输入,输入,控件,应用程序,数字,Numeric Data Entry in WPF在WPF应用程序中如何处理关于asp.net:如何定义带有潜在子元
关于asp.net:如何定义带有潜在子元素和属性的自定义web.config部分?,关于asp.net:如何定义带有潜在子元素和属性的自定义web.config部关于getJSON的弃用通知
关于getJSON的弃用通知,关于,getJSON,的,弃用,通知,Deprecation,Notice,弃用,, Deprecation Notice(弃用通知) jQuery 1.js-数字可以私有数据进行初始化
js-数字可以私有数据进行初始化,js-,数字,可以,是,或者,对象,数字,可以,是,,数字可以是数字或者对象数字可以私有数据进行初始化,就给已有的函数对象增加属性或者方法
给已有的函数对象增加属性或者方法,给,已,有的,函数,对象,增加,属性,或者,方法,,给已有的函数对象增加属性或者方法格式:构造函数名.浅析js-确认框实例
浅析js-确认框实例,浅析,js-,确认,框,实例,确认,框,通常用于,验证,,确认框确认框通常用于验证是否接受用户操作。当确认卡弹出时,用