【发布时间】:2014-05-31 20:55:01
【问题描述】:
如何在敲除数组中的特定索引处插入元素
我知道我们必须使用切片和推送,但是最好的方法是什么以及如何在可观察数组的特定位置插入新元素
【问题讨论】:
标签: knockout.js ko.observablearray
如何在敲除数组中的特定索引处插入元素
我知道我们必须使用切片和推送,但是最好的方法是什么以及如何在可观察数组的特定位置插入新元素
【问题讨论】:
标签: knockout.js ko.observablearray
使用splice。 docs 对此并不清楚(我必须自己仔细检查),但是您可以像使用常规 javascript .splice 一样使用它来插入和删除元素。例如:
var vm = {
array : ko.observableArray(["foo","bar"])
};
ko.applyBindings(vm);
function Add() {
vm.array.splice(1,0,"ra"); // at index 1 - remove 0 elements and add "ra"
}
Add(); // "ra" gets inserted between "foo" and "bar"
【讨论】:
我可以用splice 正常执行此操作(没有理由切片和推送,因为 splice 实际上可以执行此操作)。只需将您的起始位置然后 0 指定您实际上不想删除一个项目,而只添加。
var ViewModel = function() {
this.list = ko.observableArray([1, 2, 3, 5]);
};
vm = new ViewModel();
ko.applyBindings(vm);
所以如果你然后做类似的事情
vm.list.splice(3,0, 'new element');
它将插入到数组中的特定位置。当然,您可以将此代码放入模型中并将其绑定到某个事件。
【讨论】: