首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当子数组更新时,UI不会在knockout js中刷新

当子数组更新时,UI不会在knockout js中刷新
EN

Stack Overflow用户
提问于 2020-03-11 23:07:24
回答 1查看 58关注 0票数 0

我正在研究击倒js。我有一个可观察的数组对象,比如

viewModel () {

代码语言:javascript
运行
复制
self.myObservableArray = ko.observableArray();


}

在一些asyc api调用之后,我将像这样更新数组

代码语言:javascript
运行
复制
self.myObservableArray().push({
    "name" : "Some name",
    "childArray" : []
});

在第二次aync api调用之后,我将不得不遍历响应,并在每个循环中推送childArray中的一个项目。

代码语言:javascript
运行
复制
self.myObservableArray()[0]. childArray.push({
        "childName" : "name " + $index
    })

但当我更新第二级数组时,UI不会刷新。添加元素以刷新UI的正确方法是什么,或者至少有一种方法可以触发更改了parent属性的事件。

EN

回答 1

Stack Overflow用户

发布于 2020-03-12 06:03:56

如果您希望在更改childArray时更新UI,那么它也需要是一个observableArray。我还猜测您还需要使name成为一个可观察的对象,因此将它们绑定在一个单独的视图模型中可能是一个好主意,例如:

代码语言:javascript
运行
复制
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", []));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60639065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档