我如何用承诺返回的数组替换敲除js可观察数组的内容

时间:2019-01-16 00:22:10

标签: javascript knockout.js promise

我正在尝试将可观察数组的内容替换为从promise返回的数组。

我像这样初始化一个可观察的数组

let contents = ko.observableArray([]);

从promise返回的数组看起来像这样

[{name : test, code : 0, country : UK}]

如何用承诺中返回的数组内容替换可观察的空数组?

我已经尝试过了

promise.then(array => {contents(array)});

还有这个

promise.then(function(value){contents(value)})

但它们都没有将任何东西添加到可观察数组中。

1 个答案:

答案 0 :(得分:0)

选中此link

您应该首先通过称为removeAll的observableArray方法删除其内容(如果有)。

// empty the array
contents.removeAll()

// insert the new array values
promise.then(array => {ko.utils.arrayPushAll(contents, array)});

// or
promise.then(function(value){ko.utils.arrayPushAll(contents, value)});