knockout.js – Knockoutjs递归地展开ko.observableArray

前端之家收集整理的这篇文章主要介绍了knockout.js – Knockoutjs递归地展开ko.observableArray前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这种格式的 javascript数组:
omega.franchiseInfo.rawdata = [{
                Id: "Main",Title: "Main",Type: "main",items: [{
                    Id: "Menu1",Title: "Menu1",Type: "menu",items: [{
                        Id: "Menu1",items: []
                    }]
                }]
            }];

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

我正在使用数组上的knockout映射插件使其成为observableArray.阵列的所有成员也成为可观察者.

omega.franchiseInfo.observableRawData = ko.mapping.fromJS(language.rawdata);

我想要完成的是将omega.franchiseInfo.observableRawData打包成原始的纯javascript格式.这意味着等于omega.franchiseInfo.rawdata.我知道淘汰赛中有类似ko.utils.unwrapObservable的方法,但javascript不是我强大的一面,我无法让它适合我的情况.另外我认为执行该工作的函数应该是递归的,以遍历数组中的所有项.

这是我的小提琴:

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

如果有人可以帮助我并提供有效的代码,我将非常感激.感谢您的时间和精力.

解决方法

JsFiddle

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

ko.toJS(omega.franchiseInfo.observableRawData);

猜你在找的JavaScript相关文章