Twitter bootstrap 引导表-如何访问数据源对象中的内部元素

Twitter bootstrap 引导表-如何访问数据源对象中的内部元素,twitter-bootstrap,Twitter Bootstrap,假设我的数据源对象如下所示: [{ "id": 123, "name": "blabla1", "kids": { "id": "kid1", "name": "kk1" } },{ "id": 456, "name": "blabla2", "kids": { "id": "kid2", "name": "kk2" } }] $('#data-table').DataTable( { .

假设我的数据源对象如下所示:

[{
   "id": 123,
   "name": "blabla1",
   "kids": {
      "id": "kid1",
      "name": "kk1"
   }
},{
   "id": 456,
   "name": "blabla2",
   "kids": {
      "id": "kid2",
      "name": "kk2"
   }
}]
 $('#data-table').DataTable( {
    ...
    columns: [
        { data: "kids.id" },
        { data: "kids.name" },
        { data: "name" }
        ...
    ],
    ...
} );
这是一个包含2个对象的列表(数组),每个对象中都有“kids”键,包含一个带键的内部对象,依此类推

使用引导表时,每列都连接到源对象中的一个键,例如:

<th data-field="id">ID</th>
ID
这里的问题是我如何定义一个列来连接到源对象中的一个内部键

我尝试了以下方法(适用于上面的示例数据):

内部ID
但它不起作用(

附言:

我知道我可以通过实现指定的“data formatter”属性来格式化每一列的数据,但我更愿意找到一种更直接、更快的方法来完成我在这种情况下所需要的内容。

这个引导插件目前不提供这样做的机制。您应该在他们的github站点上提出请求

相反,在将JSON加载到表中之前,您每次都必须在插件的响应处理程序中展平JSON。使用此代码从对以下问题的接受答案展平JSON:,您可以创建一个响应处理程序,如下所示:

<script>
    function responseHandler(res) {
        var flatArray = [];
        $.each(res, function(i, element) { 
            flatArray.push(JSON.flatten(element));
        });
        return flatArray;
    }
</script>

如何访问表的数据源对象中的内部元素

当一个表连接到提供JSON数据的链接时,引导表会自动填充它

如果有人想访问表填充的数据(即JSON格式的数据),可以简单地执行以下操作

步骤1:将
数据响应处理程序=“responseHandler”
添加到HTML表属性中

步骤2:按如下方式编写函数:
函数响应处理器(res)
{
var str=JSON.stringify(res,未定义,2);
$(document.body).append(str);//这会将整个json数据打印到页面正文中
警报(res[0].empno);//但这是jason数据的单个值。
}

员工代码
员工姓名
SL号

使用responseHandler,我认为这对我不好,因为我的响应数据非常大,每次我重新加载表时,当我只需要一些嵌套字段时,它就会解析我所有的json。 我已经用数据格式化程序解决了我的问题,我希望它能帮助别人

<th data-field="kids.id" data-formatter="KidsIdFormatter">Inner ID</th>

使用数据格式化程序。这对我很有用

function showDescription(cell, row) {
  return cell.id;
}

<th data-field="kids" data-formatter="KidsIdFormatter">Inner ID</th>
函数showDescription(单元格、行){
返回cell.id;
}
内部ID

尝试像这样访问内部元素:
kids.name
它对我有用; 您的数据表二分法应该如下所示:

[{
   "id": 123,
   "name": "blabla1",
   "kids": {
      "id": "kid1",
      "name": "kk1"
   }
},{
   "id": 456,
   "name": "blabla2",
   "kids": {
      "id": "kid2",
      "name": "kk2"
   }
}]
 $('#data-table').DataTable( {
    ...
    columns: [
        { data: "kids.id" },
        { data: "kids.name" },
        { data: "name" }
        ...
    ],
    ...
} );
检查数据表文档:

 $('#data-table').DataTable( {
    ...
    columns: [
        { data: "kids.id" },
        { data: "kids.name" },
        { data: "name" }
        ...
    ],
    ...
} );