Knockout.js 将KnockoutJS附加到Array的开头
我有一个Knockout.js 将KnockoutJS附加到Array的开头,knockout.js,Knockout.js,我有一个ViewModel,从服务器检索数据,新数据与我已有的数据连接在一起。问题是,新数据跟在旧数据后面,我希望它反过来,以便新数据显示在视图的顶部 这就是我所拥有的: self.serverData(self.serverData().concat(newData)); 视图显示为: 旧数据 旧数据 旧数据 新数据 使用unshift函数预先设置可观测阵列。它将修改底层数组,并告诉可观察对象它已更新 var x = ko.observableArray([1,2,3]); x.unshif
ViewModel
,从服务器检索数据,新数据与我已有的数据连接在一起。问题是,新数据跟在旧数据后面,我希望它反过来,以便新数据显示在视图的顶部
这就是我所拥有的:
self.serverData(self.serverData().concat(newData));
视图显示为:
使用unshift函数预先设置可观测阵列。它将修改底层数组,并告诉可观察对象它已更新
var x = ko.observableArray([1,2,3]);
x.unshift(0);
// x() returns [0,1,2,3]
可以使用取消移位或拼接
函数viewModel(){
var self=这个;
self.x=ko.observearray([1,2,3]);
自身x.unshift(0);
self.y=ko.observearray([1,2,3]);
自y型拼接(0,0,0);
}
应用绑定(新的viewModel())代码>
YYYYYY
unshift的可能重复项是您想要的。请将observatarray
视为普通数组。它有一个类似于普通的接口,可以解决您的问题。@JamesThorpe不太合适,因为self.serverData(self.serverData().unshift(newData))代码>不起作用。(这是针对重复的建议)这是因为unshift的返回值是修改后数组的长度@chimsonchris我认为问题在于,第一次数组中没有设置任何内容,这导致了它失败?@user3704920您用什么初始化ObservalArray?@CrimsonChris在数据来自server@user3704920在[]中为空
或在null
中为空?@CrimsonChris在self.serverData=ko.observearray()中为空代码>