Javascript 当子数组更新时,UI不会在敲除js中刷新
我正在做击倒js。我有一个可观察的数组对象,比如 视图模型(){ 在一些asycapi调用之后,我将像这样更新数组Javascript 当子数组更新时,UI不会在敲除js中刷新,javascript,arrays,knockout.js,Javascript,Arrays,Knockout.js,我正在做击倒js。我有一个可观察的数组对象,比如 视图模型(){ 在一些asycapi调用之后,我将像这样更新数组 self.myObservableArray().push({ "name" : "Some name", "childArray" : [] }); 在第二次AyncAPI调用之后,我必须循环响应,并在每个循环中在childArray中推送一个项 self.myObservableArray()[0]. childArray.push({ "ch
self.myObservableArray().push({
"name" : "Some name",
"childArray" : []
});
在第二次AyncAPI调用之后,我必须循环响应,并在每个循环中在childArray中推送一个项
self.myObservableArray()[0]. childArray.push({
"childName" : "name " + $index
})
但是,当我更新二级数组时,UI不会刷新。添加元素以便UI刷新的正确方法是什么,或者至少有一种方法可以触发表示父属性已更改的事件。如果您希望在更改
childArray
时更新UI,那么它也需要是一个可观察数组o我猜您也需要将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", []));
我的回答是否有助于您解决问题?如果有,请在左侧的V符号上打勾,将我的回答标记为已接受。如果没有,请告诉我,我将尝试进一步帮助您解决问题。
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", []));