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 にしています。また、配列のすべてのメンバーもオブザーバブルになります。

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

Jsフィドル

次のように JavaScript オブジェクトに戻すことができます。

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