2016-02-25 59 views
0

我試圖創建一個DataTable,其中所提供的數據有,我需要使用的列子對象中引用的列。數據表 - 子對象

示例數據:

data: { 
    player: { 
     name: 'Sir Testington', 
     outfit: 'Blah Outfit' 
    }, 
    metrics: { 
     kills: 123, 
     deaths: 123 
    } 
} 

示例數據表代碼:

$('#playerLeaderboard').DataTable({ 
    data: $scope.alert.metrics.players.data, 
    columns: [ 
     { data: player.name }, // Fails here, not able to reference subobjects 
     { data: player.outfit }, 
     { data: metrics.kills }, 
     { data: metrics.deaths } 
    ] 
}); 

人有什麼想法?

+0

你有任何控制檯錯誤? – fbid

+0

警報觸發說數據表找不到列。 –

+0

你有'player'和'metrics'數據,你應該使用'data.player.name'並且數據應該是這樣'data = {player:{name:'Sir Testington',outfit:'Blah Outfit '},指標:{殺死人數:123,死亡人數:123 }}' – CMedina

回答

0

首先,你的data文字(或JSON)必須是一些東西。這可能是一個數組的數組,嵌套的項目或任何其他數組。您的數據的文字應該有一個這樣的結構:

var data = [ 
    { player: {...}, metrics: {...} }, 
    { player: {...}, metrics: {...} },  
    ... 
] 

然後,如果你data項目中引用到嵌套項目,引用它們作爲字符串:

var table = $('#example').DataTable({ 
    data : data, 
    columns: [ 
     { data: 'player.name' }, // Fails here, not able to reference subobjects 
     { data: 'player.outfit' }, 
     { data: 'metrics.kills' }, 
     { data: 'metrics.deaths' } 
    ] 
}) 

你不能對變量或對象的引用不存在(player.outfit不存在) - 但數據表可以很容易地計算出你引用嵌套的項目,如果你傳遞一個路徑到該項目,像'player.outfit'。看到你的代碼在這裏工作 - >http://jsfiddle.net/xsjkegL9/