我有这种格式的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: []
}]
}]
}];
Run Code Online (Sandbox Code Playgroud)
每个项目都有一个属性项,这是一个包含其他项的数组.未指定数组的元素数.
我正在使用数组上的knockout映射插件使其成为observableArray.阵列的所有成员也成为可观察者.
omega.franchiseInfo.observableRawData = ko.mapping.fromJS(language.rawdata);
Run Code Online (Sandbox Code Playgroud)
我想要完成的是然后解开omega.franchiseInfo.observableRawData它以其原始的纯javascript格式.这意味着等于omega.franchiseInfo.rawdata.我知道有淘汰赛的方法,ko.utils.unwrapObservable但javascript不是我强大的一面,我不能让它适用于我的情况.另外我认为执行该工作的函数应该是递归的,以遍历数组中的所有项.
这是我的小提琴:
http://jsfiddle.net/KHFn8/931/
如果有人可以帮助我并提供有效的代码,我将非常感激.感谢您的时间和精力.
Luf*_*ffy 13
您可以将其转换回JavaScript对象,如下所示:
ko.toJS(omega.franchiseInfo.observableRawData);
Run Code Online (Sandbox Code Playgroud)