Hintergrund:
Ich bin beschäftigt, eine Anwendung zu erstellen, die (unter anderem) in der Lage sein muss, einen Bericht anzuzeigen. Ich wähle DataTables, weil es super funktioniert und einfach zu implementieren ist. Ich habe eine Anwendung erstellt, die auf einem (statischen) Datensatz basiert. Ich habe jedoch die Anforderung erhalten, die Anwendung zu ändern, um mit mehreren Datensätzen arbeiten zu können.Make DataTables Spaltenvariable basierend auf einem Array
Frage:
amonst andere Dinge, ich mag die statisch definierten Spalten ersetzen (Code-Schnipsel sehen), mit einer Variablen. In diesem Fall ein Array mit id, keten, name, x, y
, das an anderer Stelle dynamisch deklariert wird.
Wie ändere ich meine Funktion, um ein variables Array zu integrieren, statt die Spalten hart zu codieren?
sollte das Ergebnis Ende von
ändern"columns": [
{"data": "id"},
{"data": "keten"},
.......
um so etwas wie
"columns": [
{"data": *variableReportData*}
Code:
function rapport_vullen(){
$("#rapport").dataTable({
destroy: true,
"aaData": geojson.features.map(function(row) { return row.properties; }),
"columns": [
{"data": "id"},
{"data": "keten"},
{"data": "name"},
{"data": "x"},
{"data": "y"}
]
});
download_rapport()
};
Ich habe mit dem Code ein wenig gebastelt, aber die Ergebnisse sind nicht 100% korrekt. Obwohl es die korrekte Anzahl von Datensätzen für meinen Bericht zurückgibt, sind alle Datensätze [Objekt Objekt] –
10 @JordiZ Wird an der Konsole ausgegeben? Verwenden Sie 'JSON.stringify (obj)', wenn Sie ausgeben. – 4castle
Wenn ich console.log (inputArray), zeigt die Konsole ein Objekt. Wenn ich console.log (JSON.stringify (inputArray) verwende, sind die Ergebnisse: '[{" data ":" id "}, {" data ":" x "}, {" data ":" y "}, { "data": "keten"}, {"data": "name"}] ', das ist gut, dachte ich. Wenn ich jedoch versuche, es in meine DataTables zu integrieren, gibt es einen leeren Bericht. Fehlermeldung:" TypeError : ungültig 'in' Operand e " –