我正在研究击倒js。我有一个可观察的数组对象,比如
viewModel () {
self.myObservableArray = ko.observableArray();
}在一些asyc api调用之后,我将像这样更新数组
self.myObservableArray().push({
"name" : "Some name",
"childArray" : []
});在第二次aync api调用之后,我将不得不遍历响应,并在每个循环中推送childArray中的一个项目。
self.myObservableArray()[0]. childArray.push({
"childName" : "name " + $index
})但当我更新第二级数组时,UI不会刷新。添加元素以刷新UI的正确方法是什么,或者至少有一种方法可以触发更改了parent属性的事件。
发布于 2020-03-12 06:03:56
如果您希望在更改childArray时更新UI,那么它也需要是一个observableArray。我还猜测您还需要使name成为一个可观察的对象,因此将它们绑定在一个单独的视图模型中可能是一个好主意,例如:
var childViewModel = function (name, items) {
var self = this;
self.name = ko.observable(name);
self.childArray = ko.observableArray(items);
}
self.myObservableArray.push(new childViewMode("Some name", []));https://stackoverflow.com/questions/60639065
复制相似问题