首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Knockoutjs递归地展开ko.observableArray

Knockoutjs递归地展开ko.observableArray
EN

Stack Overflow用户
提问于 2012-08-09 18:06:14
回答 1查看 11.2K关注 0票数 6

我有一个javascript数组,格式如下:

代码语言:javascript
复制
omega.franchiseInfo.rawdata = [{
                Id: "Main",
                Title: "Main",
                Type: "main",
                items: [{
                    Id: "Menu1",
                    Title: "Menu1",
                    Type: "menu",
                    items: [{
                        Id: "Menu1",
                        Title: "Menu1",
                        Type: "menu",
                        items: []
                    }]
                }]
            }];

每个项目都有一个属性items,它是一个包含其他项目的数组。未指定数组的元素数。

我在数组上使用了knockout映射插件,使其成为observableArray。并且数组的所有成员也成为可观测的。

代码语言:javascript
复制
omega.franchiseInfo.observableRawData = ko.mapping.fromJS(language.rawdata);

然后,我想要完成的是将omega.franchiseInfo.observableRawData解包为其原始的纯javascript格式。这意味着等同于omega.franchiseInfo.rawdata。我知道在knockout中有像ko.utils.unwrapObservable这样的方法,但javascript不是我的强项,我不能让它适用于我的情况。另外,我认为完成这项工作的函数应该是递归的,以遍历数组中的所有项。

这是我的小提琴:

http://jsfiddle.net/KHFn8/931/

我将是非常伟大的,如果有人可以帮助我,并提供一个工作代码。感谢您的时间和努力。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-09 18:45:27

JsFiddle

您可以将其转换回JavaScript对象,如下所示:

代码语言:javascript
复制
ko.toJS(omega.franchiseInfo.observableRawData);
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11881025

复制
相关文章

相似问题

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