knockout js,将新项添加到数组中

所以这是我之前提出的问题:

knockout js,向数组中添加其他元素

基本上我有一个应用程序,用户填写某些数据,然后点击下一步,这将添加到一个数组。 但是,我想要做的是在用户开始使用应用程序之前将一些项目添加到数组中(这些项目来自数据库)。 我们的想法是,在开始时,他们可以查看数组中的每个项目,然后选择项目并编辑此项目。 我有一种感觉,我错过了一些令人目眩的明显但我似乎无法弄清楚的事情

Knockout可观察数组与本机JavaScript数组具有相同的function。 请参阅: http : //knockoutjs.com/documentation/observableArrays.html

所以你只需要使用arr.pop(item)或arr.push(item)。

如果您需要替换所有项目并希望避免引发多个事件,请使用observableArray.valueWillMutate()和valueHasMutated()函数。 请参阅我交换整个数组的示例:

 ko.observableArray.fn.replaceWith = function (valuesToPush) { // NOTE: base on - ko.observableArray.fn.pushAll var underlyingArray = this(); var oldItemcount = underlyingArray.length; this.valueWillMutate(); // adding new items to obs. array ko.utils.arrayPushAll(underlyingArray, valuesToPush); // removing old items (using KO observablearray fnc.) if (oldItemcount > 0) this.removeAll(underlyingArray.slice(0, oldItemcount)); this.valueHasMutated(); return this; //optional };