在中出現的data.indexOf不是一個函數錯誤
P粉004287665
P粉004287665 2024-02-26 14:39:12
0
1
463

data.indexOf 不是 Tabulator JavaScript 函式庫中的函式錯誤。

完整的錯誤訊息:

[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)

並警告:

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

我使用了文件中描述的設置,基於瀏覽器,所以 tabulator.js 和 tabulator.css 位於 html 中的位置。沒有做任何其他事情。

我的 HTML:

<!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>

我在assess.js中的javascript:

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 轉到一個獲取類,該類從 MySQL 資料庫獲取數據,而 MySQL 資料庫透過 PHP 通用 API 獲取數據。這一切都有效。 帶有物件的資料數組已轉換為 JavaScript 物件 OK。製表器給出上述錯誤。

網站位於網際網路供應商主機上,我不想在本機上執行另一個 MySQL。

有什麼建議嗎?設定錯誤?

P粉004287665
P粉004287665

全部回覆(1)
P粉412533525

找到了罪魁禍首!我需要使用

來取得 dataArray 中的記錄
data: dataArray.records,

就是這樣!

我發現這很神奇,因為在我使用資料建立的自訂表函數(displayRecords(dataArray, false))中,它無需 .records 屬性即可運作。

感謝您讓我了解 dataArray 的內容。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板