1。简单的例子
复制代码代码如下所示:
var = ko.observablearray(myobservablearray); / / /初始化一个空数组
MyObservableArray.push(价值); / / /数组中添加一个项目
2。关键点:监视数组跟踪数组中的对象,而不是对象本身的状态。
总之,将物体observablearray不会使物体自身的性质变化监测。当然,你也可以声明对象的
属性是可见的,但它成为一个依赖监控对象,observablearray只监测对象他拥有并发出通知时,这些对象被添加或
删除。
三.预压监测阵列observablearray
如果希望在开始时监视数组有一些初始值,那么在声明时可以在构造
函数中添加这些初始对象:
复制代码代码如下所示:
无功anotherobservablearray = ko.observablearray(
{姓名:做
{名称:乔治
{姓名:活泼
});
4。从observablearray读取信息
一个observablearray实际上是一个可观察的监控对象,但它的值是一个数组(observablearray增添了许多其他的
功能,这将在后面
介绍),你可以通过调用一个非
参考函数得到你自己的价值,你可以得到一个正常的可观察的价值。例如,你可以为获取其值:
复制代码代码如下所示:
警报(数组的长度+ myobservablearray()。长度);
警报(第一要素是+ myobservablearray(){ 0 });
理论上,您可以使用任何
原生Javascript数组函数来
操作这些数组,但KO提供了更好的函数等价函数。它们非常有用,因为:
答:是兼容所有
浏览器。(例如,索引不能用于IE8或更早的版本,但KO自己的指标,可以用在所有的浏览器)
B:在数组操作函数(如推和拼接)中,KO本身可以自动触发依赖跟踪,并通知所有订阅者的更改,然后使UI
界面自动更新。
C: syntax is more convenient, calling the push method of KO, only to write this: myObservableArray.push (...).For example, the myObservableArray () ().Push () of a native array is much more useful.
5.indexof切片
IndexOf函数返回第一个指标,等于你的
参数数组的项目。例如,myobservablearray.indexof('blah)将返回第一个数组中的所有项等于废话指数以0作为第一指标。如果没有被
发现,1将被退回。 U3000 U3000
该片的功能是Javascript的原生功能片observablearray相对等价的函数,它返回的所有对象的集合从初始指标最终指标。电话myobservablearray.slice(…)相当于调用Javascript原生函数(例如:myobservablearray()。片(…))。
6。操作observablearray
observablearray
显示数组对象的类似功能,通知
用户的功能。
流行、推、移、不位移、扭转、
排序、剪接
所有这些函数都相当于Javascript数组本机函数,只有不同的数组更改才能通知订阅
服务器。
复制代码代码如下所示:
MyObservableArray.push(新价值); / /将新项添加到数组的末尾
(myobservablearray。流行); / /删除数组的最后一项,项目回报
MyObservableArray.unshift(新价值); / /添加一个项目中的阵头
(myobservablearray。移); / /删除数组并返回第一头
(myobservablearray。反向); / /翻转整个阵列
命令 (myobservablearray。排序); / /数组排序
默认情况下,它按字符排序(如果它是字符)或数字排序(如果它是数字)。
您可以排序并
输入排序函数进行排序。排序函数需要接受2个参数(表示数组中需要比较的项)。如果第一项小于第二项,它返回到1,大于1,等于0。例如:来人姓,你可以这样写:
复制代码代码如下所示:
MyObservableArray.sort(
函数(左,右){
返回left.lastname right.lastname(left.lastname < = = 0:1:1 right.lastname);
});
MyObservableArray.splice()删除对象数组元素指定起始索引和指定号码。例如,myobservablearray.splice(1, 3)删除3行(第二、三、四元)从索引1和返回这些元素的数组对象。
在observablearray功能的更多信息,请参阅等效Javascript数组的标准功能。
7.remove和全部
复制代码代码如下所示:
ObservableArray adds some Javascript arrays that have no but very useful functions:
MyObservableArray.remove(someitem); / /删除所有等于someitem元素将被删除,作为元素的数组返回
MyObservableArray.remove(功能(项目){ return项目。年龄}<18;); / /删除所有年龄的属性和元素小于18会删除元素的数组返回