我有一个ViewModel
,我从服务器检索数据,并且新数据与我已有的数据连接在一起。问题是,新数据是在旧数据之后,我想要反过来所以新数据显示在视图顶部。
这就是我所拥有的:
self.serverData(self.serverData().concat(newData));
,视图显示为:
答案 0 :(得分:2)
使用unshift函数预置可观察数组。它将修改底层数组并告知可观察的更新。
var x = ko.observableArray([1,2,3]);
x.unshift(0);
// x() returns [0,1,2,3]
答案 1 :(得分:0)
您可以使用unshift或splice
function viewModel() {
var self = this;
self.x = ko.observableArray([1, 2, 3]);
self.x.unshift(0);
self.y = ko.observableArray([1, 2, 3]);
self.y.splice(0, 0, 0);
}
ko.applyBindings(new viewModel());

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div data-bind="foreach: x">
<span data-bind="text: $data"> </span>
</div>
yyyyyyy
<div data-bind="foreach: y">
<span data-bind="text: $data"> </span>
</div>
&#13;