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