0

qooxdoo にいくつかのデータを表示するテーブルがありますが、サブドキュメントが埋め込まれているため、このデータは少し異なります。

[
    {
        simpleField: 1,
        mapSubDocField: {
            key1: 1,
            key2: 3
        }
    },
    {
        simpleField: 1,
        mapSubDocField: {
            key1: 1,
            key2: 3
        }
    },
    {
        simpleField: 1,
        mapSubDocField: {
            key1: 1,
            key2: 3
        }
    },
]

私はこのようなことをしようとしましたが、うまくいきませんでした:

model.setColumns(   ['simpleFIeld', 'key1', 'key2'], 
            ['simpleFIeld', 'mapSubDocField.key1', 'mapSubDocField.key2']);

しかし、うまくいきませんでした。私のフィールドは空です。

どうすればいいですか?ありがとう

編集:現在、私のモデルでは、このスクリプトも追加しました:

        var i = result.length;
        var item;
        var key;
        var subitem;
        var subkey;
        while(i--){
            item = result[i];
            for(key in item){
                if(Object.prototype.toString.call(item[key]) === '[object Object]'){
                    var subitem = item[key];
                    for(subkey in subitem){

                        item[key+'.'+subkey] = subitem[subkey];
                        delete item[key];
                    }
                }
            }
        }

これにより、上記のオブジェクトが次のように変換されます。

[
    {
        simpleField: 1,
        mapSubDocField.key1: 1,
        mapSubDocField.key2: 3
    },
    {
        simpleField: 1,
        mapSubDocField.key1: 1,
        mapSubDocField.key2: 3
    },
    {
        simpleField: 1,
        mapSubDocField.key1: 1,
        mapSubDocField.key2: 3
    }
]

しかし、質問はまだ続いています:それを行うためのより良い方法はありますか? (qooxdoo だけで管理できるかもしれません)

4

1 に答える 1

0

テーブルは、データをリストのリストとして表示できます。階層的なデータ構造がある場合は、データをツリーとして表示することを検討してください。qooxdoo には、データの視覚化のためのツリーも用意されています。おそらく、TreeVirtual はあなたにとって正しい選択でしょうか? テーブルに固執したい場合は、データをテーブルが理解できる構造にする責任があります。

于 2012-08-23T08:12:16.913 に答える