将客户端JSON传递给dataTable - 语法?

时间:2017-07-31 05:09:14

标签: json datatables client-side

我一直试图将JSON传递给dataTable。

我在脚本中的不同点加载JSON,然后截断我需要的部分并将其传递给应该呈现表的函数。 功能是:

    function populateCasesTable(d){
        var json = d.cases;
        var cols = [
            {  "data"   :  json.service_area},
            {  "data"   :  json.presenting_issue },
            {  "data"   :  json.referred_by },
            {  "data"   :  json.date_opened },
            {  "data"   :  json.case_status },
            {  "data"   :  json.preferred_staff }
        ];

        console.log(json);

        $('#cases_table').DataTable( {
           "data": json,
           "columns": cols
        } );
    }

表的HTML是

<table  id='cases_table' width="100%">
    <thead>
    <tr>
        <th>Service Area</th>
        <th>Presenting Issue</th>
        <th>Referred by</th>
        <th>Date opened</th>
        <th>Status</th>
        <th>Preferred Staff</th>
    </tr>
    </thead>

</table>

console.log输出返回正确数量的对象(12),单个对象看起来如下:

    0 Object: 
    action:9
    case_status:"Open"
    date_created:"11/07/2017"
    date_opened:"11/07/2017"
    file:5
    id:31646
    issues:8
    preferred_staff:"Doc Kuran"
    presenting_issue:"Anxiety Disorder"
    referral:0
    referred_by:"Academic staff"
    serviceAreaId:14
    service_area:"Disability Services"
    staff:0

我得到正确数量的页面,伴随着神秘的'DataTables警告:table id = cases_table - 第0行第0列请求的未知参数'0'。有关此错误的详细信息,请参阅{{3} }' 弹出。

我确定这是配置问题,但我无法解决这个问题。

我错过了什么?

感谢。

1 个答案:

答案 0 :(得分:0)

我找到了。 Cols必须设置如下:

 var cols = [
            {  "data"   :  'service_area'},
            {  "data"   :  'presenting_issue' },
            {  "data"   :  'referred_by' },
            {  "data"   : 'date_opened' },
            {  "data"   : 'case_status' },
            {  "data"   : 'preferred_staff' }
        ];