Как заменить содержимое наблюдаемого массива knockout js массивом, возвращаемым из обещания - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь заменить содержимое наблюдаемого массива массивом, который возвращается из обещания.

Я инициализирую наблюдаемый массив следующим образом

let contents = ko.observableArray([]);

И массив, который возвращается из обещания, выглядит примерно так

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

Как заменить пустой наблюдаемый массив содержимым массива, который возвращается из обещания?

Я пробовал это

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

Как и этот

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

но ни один из них не добавляет ничего в наблюдаемый массив.

1 Ответ

0 голосов
/ 16 января 2019

Отметьте ссылку

Вы должны сначала удалить его содержимое (если оно есть) с помощью метода observableArray с именем removeAll.

// 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)});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...