【发布时间】:2023-03-23 23:00:01
【问题描述】:
我使用 Angular 应用程序和数据表。在我的一个组件中,我有一个 DataTable,它使用选项对象的“ajax”属性从外部 API 中提取数据。
export class ChartsDetailsComponent implements OnInit {
ngOnInit(): void {
var opts: any = {
ajax :{
url: this.appConfigService.analyseConfig.chartsApiUrl + "/api/Charts/GetChartDetails?type=" + this.chartType,
dataSrc: "ChartData." + this.chartType
},
columns:[
{title:"Name"},
{title:"Status"},
]
};
var table = $('#details').DataTable(opts);
}
}
返回的数据结构如下:
{
"ChartData":{
"FQCInLocalChart":[
["EM/AC.08.2.01","Remote"],
["EM/AC.08.2.03","Remote"]
]
}
}
FQCInLocalChart 是动态的。它不是静态属性。这就是为什么我在dataSrc 属性中放置了"ChartData." + this.chartType,其中this.chartType 是Angular 组件的私有属性。
数据源仅包含必须显示的列,但我希望在填充有从 API 数据返回的列之前有一个行号。 有没有办法实现这种行为?
提前致谢 朱利安
【问题讨论】:
-
这能回答你的问题吗? Add row number column to jquery datatables
-
我不确定,因为我将选项的
columns属性定义为像[{title:"First Column"},{title;"Second Column"}]这样的数组,并且当我添加例如一个空列(或数组中的另一个对象)时),第一列始终包含来自 ajax 响应的数据的第一列。有没有办法(以某种方式)转移并告诉从第二列填充数据源? -
您能否编辑您的问题以显示更多信息:(1) DataTables 定义,(2) ajax 调用收到的 JSON 数据示例,以便我们查看其结构。谢谢。
-
@andrewjames 感谢您的回答。我已经更新了原始问题。希望我就我的问题提供了足够的信息。
-
感谢您的更新。是的,源数据以数组(而不是对象)提供的事实确实让事情变得更加尴尬。但我为你提出了一种方法。
标签: javascript jquery datatables