如何加载两个JSON脚本文件避免互相覆盖,解决Tabulator表格数据错误
问题原因
- 你当前的用法不符合JSON的加载规范:纯JSON文件不能直接通过
<script>标签引入执行,你可以正常加载说明你的两个.json文件实际是JS格式,内部用了同一个全局变量存储表格数据,后加载的saveFile2.json的赋值操作直接覆盖了前一个文件定义的变量,导致两个表格初始化时都读取了后赋值的saveFile2的数据。
修复方案
方案1:使用Tabulator内置的AJAX加载功能(最推荐)
直接移除HTML中两个引入JSON的<script>标签,修改tabulatorTables.js中的表格初始化逻辑,分别给两个表格指定对应的数据文件路径即可,Tabulator会自动拉取对应数据渲染:
// 初始化表格1,绑定saveFile1.json new Tabulator("#table1", { ajaxURL: "saveFile1.json", // 其余你原本的表格配置,比如列定义、样式配置等 }); // 初始化表格2,绑定saveFile2.json new Tabulator("#table2", { ajaxURL: "saveFile2.json", // 其余你原本的表格配置 });
方案2:修改全局变量名避免覆盖
如果你一定要保留用<script>标签加载数据的逻辑,就修改两个数据文件里的变量名,保证不重复:
- 把
saveFile1.json里存储数据的全局变量改为table1Data - 把
saveFile2.json里存储数据的全局变量改为table2Data - 初始化表格时分别传入对应变量:
new Tabulator("#table1", { data: table1Data, // 其余配置 }); new Tabulator("#table2", { data: table2Data, // 其余配置 });
内容的提问来源于stack exchange,提问作者Black Werwulf
相关产品推荐
相关产品推荐

