0

サーバー側から取得したような JSON データ構造があります。

"data":[
    { "subdata":{ "type":"RY", "config":{ "cash":200} }
    { "subdata":{ "type":"SR", "config":{ "cash":200, "chips":300} }
    { "subdata":{ "type":"SR", "config":{ "chips":300} }
    { "subdata":{ "type":"RY", "config":{ "bonus":200, "chips":400} }
    { "subdata":{ "type":"SR", "config":{ "bonus":100} }
]

次のように、ビューのテーブルにレンダリングされます。

<table id='table-config'>
    <tr><td>RY</td> <td>cash=200,</td> <td>Mode Amount=200</td></tr>
    <tr><td>SR</td> <td>cash=200,chips=300,</td> <td>Mode Amount=300</td></tr>
    <tr><td>SR</td> <td>chips=200,</td> <td>Mode Amount=200</td></tr>
    <tr><td>RY</td> <td>bonus=200,chips=400,</td> <td></td></tr>
    <tr><td>SR</td> <td>bonus=100,</td> <td>Mode Amount=600</td></tr>
</table>

データをレンダリングしながら、

最初の列のデータは を与えるはずtype=RY/SRですが、次のような警告をスローした後、最初のセルは null になります

DataTables 警告 (テーブル ID = 'table-configs'): 行 0 のデータ ソースから不明なパラメーター 'subdata.type' を要求しました。

2番目の列のデータは構成オブジェクトを提供する必要がありますが、次のような警告をスローした後、2番目のセルはnullになります

DataTables 警告 (テーブル ID = 'table-configs'): 行 0 のデータ ソースから不明なパラメーター 'subdata.config' を要求しました。

3 番目の列のレンダリング データは機能しています。

dataTable js コードは次のとおりです。

function renderAmount(o, config){
    var amount = '';
    $.each(config, function(key, value){
        amount += key + '=' + value + ',';
    });
    return amount;
}

function renderGameMode(o, data){
    var game_mode= (data.type=='RY')? 'cash' : 'chips';
    var mode_value='';
    $.each(data.config, function(key,value){
        if(key == game_mode){
            mode_value = "Mode Amount="+data.config.key;
        }
    });
    return mode_value;
}

$('#table-configs').dataTable({
    'aaData': data.data,
    'bPaginate': false,
    'aoColumns':[
        { 'mDataProp': 'subdata.type' },
        { 'mDataProp': 'subdata.config', 'fnRender': renderAmount },
        { 'mDataProp': 'subdata', 'fnRender': renderGameMode }
    ]
});
4

1 に答える 1

0

@Pradeep に投稿したコードに問題があります。次のようなものではないでしょうか

<tr><td>cash=200,</td></tr>
<tr><td>cash=200,chips=300,</td></tr>
<tr><td>chips=200,</td></tr>
<tr><td>bonus=200,chips=400,</td></tr>
<tr><td>bonus=100,</td></tr>

そうでない場合は、コードに問題がある可能性があります。

于 2012-09-03T11:12:53.777 に答える