数据表 - 引用子对象中的列

时间:2016-02-25 16:49:58

标签: javascript datatables

我正在尝试创建一个数据表,其中提供的数据包含我需要用于列的子对象。

示例数据:

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 }
    ]
});

有人有什么想法吗?

1 个答案:

答案 0 :(得分: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不存在) - 但是如果你传递一个路径,dataTables可以很容易地发现你引用的是嵌套项目该项目,如'player.outfit'。查看您在此处工作的代码 - >的 http://jsfiddle.net/xsjkegL9/