我曾经有一个本地JSON文件,可将数据加载到DataTable中。
我正在切换到axios和url的过程中--- axios.get在我项目的其他区域中工作。
但是,我现在正在研究的项目区域使用的是DataTable,它以特定的方式接收数据(请参见下面的代码)。我已经格式化了我的代码以尝试使其与DT的格式兼容,但是我没有运气。我可以在控制台中告诉我正在访问JS文件和函数,但我根本无法让DataTables加载我的数据。
我在下面附上了代码片段,以及一个JSFiddle,其中显示了 在我刚使用本地JSON文件时以前的工作方式 。>
有什么想法吗?我喜欢DT及其功能,但有时很难使用。
import $ from 'jquery';
import DataTable from 'datatables.net';
var moment = require('moment');
export default class {
constructor() {
}
loadAdmData(response) {
let admText = $.each(response, function(idx, val) {
console.log("loadAdmData is being reached") // --- working
return {
"Ct": val.Ct,
"Status": val.AdmStatus,
"Classification": val.Classification
}
}).filter(x => x.p_h_v == "") // if p_h_v is empty, don't render it to table
if (!admText.length) $("#adm-tab").hide();
$('#adm-table').DataTable({
columns: [
{ data: "Ct" },
{ data: "Status" },
{ data: "Classification" }
],
data: admText, // ----- this is where the data comes in
responsive: true
});
}
}
我不想在这里写出来,所以我创建了一个小提琴。
<feed xmlns="[redacted]" xml:base="[redacted]">
<id>[redacted]</id>
<title />
<updated>2019-02-27T14:45:58Z</updated>
<entry m:etag=""8"">
<id>[redacted] />
<link rel="edit" href="[redacted]" />
<title />
<updated>2019-02-27T14:45:58Z</updated>
<author>
<content type="application/xml">
<m:properties>
<d:AdmStatus>Active</d:AdmStatus>
<d:Ct m:type="SP.Taxonomy.TaxonomyFieldValue">
<d:Classification>[redacted]</d:Classification>
</m:properties>
</content>
</entry>
{
"d": {
"results": [
{
"admstatus": "Active",
"classification": "[redacted]",
...etc
答案 0 :(得分:0)
我想这部分代码有问题
then(axios.spread((adm) => {
let admissData = adm.data.d.results;
///
let aComp = new admComponent(admData);
aComp.loadAdmData(admData);
}))
尝试调试这些:
admData
是什么。编辑1:
如果键值不同,则可能是您在此处读取数据时遇到了问题
return {
"Ct": val.Ct,
"Status": val.AdmStatus,
"Classification": val.Classification
}
还打印admText
以查看Json的格式是否正确