我正在使用bootstrap-table,希望从URL加载JSON数据并将其显示在表中。我已经尝试按照库文档进行操作,虽然我可以看到数据正在正确加载到浏览器中,但它并没有显示在表中。
我创建了一个表,看起来像这样:
<table id="meetingPoiModalTable" class="caption-top"
data-toggle="table"
data-url="http://example.org/data">
<caption class="h5">Points of Interest</caption>
<thead>
<tr>
<th data-field="title" data-title="Title">Title</th>
</tr>
</thead>
</table>
字符串
表被 Package 在一个模态中,所以我使用下面的代码在模态切换时重置视图:
let $meetingPoiModalTable = $('#meetingPoiModalTable');
$(function() {
$('#meetingPlanModal').on('shown.bs.modal', function () {
$meetingPoiModalTable.bootstrapTable('resetView');
})
})
型
JSON格式如下:
{
"access_time": "2023-09-06 20:38:47.323838",
"meeting_date": "2023-07-17",
"meeting_plan": {
"count": 2,
"items": [
{
"m_title": "build_an_arcade",
"section": "plans",
"title": "Build an Arcade",
"url": "/agendas/2023-07-17#collapse-build_an_arcade"
},
{
"m_title": "don_t_waste_money",
"section": "orders",
"title": "Don't Waste Money",
"url": "/agendas/2023-07-17#collapse-don_t_waste_money"
}
]
},
"poi": {
"count": 3,
"items": [
{
"m_title": "build_an_arcade",
"section": "plans",
"title": "Build an Arcade",
"url": "/agendas/2023-07-17#collapse-build_an_arcade"
},
{
"m_title": "don_t_waste_money",
"section": "orders",
"title": "Don't Waste Money",
"url": "/agendas/2023-07-17#collapse-don_t_waste_money"
},
{
"m_title": "grow_up",
"section": "refused_items",
"title": "Grow Up",
"url": "/agendas/2023-07-17#collapse-grow_up"
}
]
}
}
型
我已经打开了Chrome检查器,并查看了加载模态时拉入的数据,JSON似乎是正确的,完好无损。然而,我没有看到表中的数据。相反,我看到“没有找到匹配的记录”。
我在想,我需要以某种方式指定我只希望在poi
对象中将我的行基于items
,但我不确定如何实现这一点。
1条答案
按热度按时间bqucvtff1#
我知道这是一个较旧的帖子,但是为了将来有人会遇到它,或者可能OP仍然需要答案,这里有一个供参考。它实际上包含了引导表如何与嵌套JSON一起工作的一些有趣方面。
问题是从加载的JSON中输出任何
title
。<th data-field="title" data-title="Title">Title</th>
个然而,有两个主要问题。
title
出现在样本中的meeting_plan
和poi
中。1.在这两种情况下,
title
都嵌套在items
内部。一般来说,我总是尝试给给予bootstrap-table一个简单的JSON输入,通常在服务器端重写响应,如果我控制它,或者在客户端重写响应,如果这是不可能的。
因此,您可以使用如下函数将其展平,该函数将从两个部分获取
title
(假设$data是您的JSON)字符串
然后,可以使用
load
方法初始化表。型
Here是一个使用bootstrap-table在线编辑器的工作示例。旁注:
只是为了尝试一下,我意识到可以做一些像
data-field=meeting_plan.count
这样的事情,在表中显示2
。然而,至少在我的测试中,这看起来像是嵌套。