data.indexOf bukan ralat fungsi dalam perpustakaan JavaScript Tabulator.
Mesej ralat penuh:
[Error] TypeError: data.indexOf is not a function. (In 'data.indexOf("{")', 'data.indexOf' is undefined) load (tabulator.js:6075) _loadInitialData (tabulator.js:7971) _create (tabulator.js:7841) (anonieme functie) (tabulator.js:7756)
Dan amaran:
Table Not Initialized - Calling the redraw function before the table is initialized may result in inconsistent behavior, Please wait for the `tableBuilt` event before calling this function
Saya menggunakan persediaan yang diterangkan dalam dokumentasi, berasaskan penyemak imbas, jadi tabulator.js dan tabulator.css ialah tempat mereka berada dalam html. Tiada apa-apa lagi yang dilakukan.
HTML Saya:
<!DOCTYPE html> <html lang="nl"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/tabulator.css"> <!-- <link rel="stylesheet" href="css/tabulator.css.map"> --> <link rel="stylesheet" href="css/layout.css"> <link rel="stylesheet" href="css/style.css"> <script defer src="js/tabulator.min.js"></script> <script defer src="js/crud.js"></script> <script defer src="js/data.js"></script> <script defer src="js/assess.js"></script> <title>DMMA</title> </head> <body> <main id="home"> <h1 class="center-text dark-blue-text">Datamanagement Maturity Assessment</h1> <div id="entree" class="container"></div> <div class="output container"></div> </main> </body> </html>
Javascript saya dalam assess.js:
document.addEventListener('DOMContentLoaded', async function() { // the assObj is the data of assessment objects I want to retrieve const assObj = new dataProvider; // Use Tabulator assObj.get('api.php/records/AssmntPlusObjects') // .then(async dataArray => displayRecords(dta, false)) // Works! .then(dataArray => { let table = new Tabulator("#entree", { data: dataArray, autoColumns: true }) }) .catch(err => displayError(err, null)) });
assObj.get Pergi ke kelas dapatkan yang mendapat data daripada pangkalan data MySQL yang mendapat data melalui PHP Common API. Semuanya berfungsi. Tatasusunan data dengan objek ditukar kepada objek JavaScript OK. Tabulator memberikan ralat di atas.
Tapak web ini dihoskan pada penyedia internet dan saya tidak mahu menjalankan MySQL lain secara tempatan.
Ada cadangan? Tetapan yang salah?
Pesalah ditemui! Saya perlu mendapatkan rekod dalam dataArray menggunakan
Itu sahaja!
Saya mendapati ini menakjubkan kerana dalam fungsi jadual tersuai yang saya bina dengan data (displayRecords(dataArray, false)) ia berfungsi tanpa harta .records.
Terima kasih kerana memberitahu saya apa itu dataArray.