2017-04-30 8 views
1

私はこのjsとdatatablesの全領域で非常に新しいです。これはDataTableのdatatablesオブジェクトの配列の代わりにオブジェクトのオブジェクト

var data = {"jaxm": 
    { 
     "name": "Tiger Nixon", 
     "position": "System Architect" 
    }, 
    "jaxb" : 
    { 
    "name": "Garrett Winters", 
    "position": "Accountant" 
    } 

} 

で表すことができますどのように

私は

$(duTable).DataTable({ 
    data: data, 
}); 

ない配列なしかどうか、これが可能であれば必ずを試みたが、でも、私は

$(duTable).DataTable({ 
    data: data.jaxm, 
}); 
を使用してDataTableの中で単一の行を印刷couldntの
+0

このサンプル入力でテーブルがどのように見えると思いますか? – trincot

答えて

2

(短い回答)できません。上記は、ハッシュテーブル、または一種の関連配列のようなものです。オブジェクトを保持する複数のキー(インデックスではない)を持つオブジェクトがあります。あなたは、このようなインデックス付き配列に構築サニタイズする必要があります。

function sanitizeData() { 
    var d = []; 
    Object.keys(data).forEach(function(key) { 
    d.push(data[key]); 
    }); 
    return d; 
} 

var table = $('#example').DataTable({ 
    data: sanitizeData(), 
    // **and** instruct dataTables which object property belongs to which column 
    columns: [ 
    { data: 'name' }, 
    { data: 'position' } 
    ] 
}) 

参照のデモを - >http://jsfiddle.net/0c52ra0c/

それ同じことをするだろう

var table = $('#example').DataTable({ 
    data: [data.jaxm, data.jaxb], 
    columns: [ 
    { data: 'name' }, 
    { data: 'position' } 
    ] 
}) 

の基本的にはアルゴリズムのバージョンです。したがって、最後の "print single row"の試行では、data: [data.jaxm]を解決策として使用できます。いずれにしても、インデックス付き配列をdataTablesに渡す必要があります。

関連する問題