6

我有这种格式的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,它是一个包含其他项目的数组。未指定数组的元素数。

我正在使用数组上的敲除映射插件使其成为 observableArray。并且数组的所有成员也都变成了 observables。

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

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

这是我的小提琴:

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

如果有人可以帮助我并提供工作代码,我将非常高兴。感谢您的时间和精力。

4

1 回答 1

13

提琴手

您可以像这样将其转换回 JavaScript 对象:

ko.toJS(omega.franchiseInfo.observableRawData);
于 2012-08-09T10:45:27.457 回答