Плагин DataTables Не может прочитать данные JSON, поступающие из локального хранилища - PullRequest
0 голосов
/ 21 ноября 2018

ВОПРОС : Я не понимаю, почему параметр 'contentType' не может быть найден.У меня правильно написано.Я предполагаю, что я не устанавливаю параметры правильно.Информация в ссылке поддержки не помогла.Я предполагаю, что я не ссылаюсь на объект правильно.

Есть идеи?

ОШИБКА : Предупреждение DataTables: table id = attachment - Требуется неизвестный параметр 'contentType'для строки 0, столбца 0. Для получения дополнительной информации об этой ошибке см. http://datatables.net/tn/4

JSON :

[{
"_data$p$0": {
    "id": "AAMkADU4MzkxN2RmLTdiZS53ao=",
    "name": "somefile.xlsx",
    "contentType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
    "size": 43069,
    "attachmentType": 0,
    "isInline": false
}}]

JAVASCRIPT :

Office.initialize = function (reason) {
$(document).ready(function () {
    app.initialize();
    window.alert = function (message) { app.showNotification("DataTable", message); };



    var attachments = localStorage.getItem("Attachments");


    console.log(attachments);
    // Display Table
    $('#attachment').DataTable({
        data: attachments,
        columns: [
            { data: 'contentType' },
            { data: 'name' }
        ]
    });

});};

HTML :

<table id="attachment" class="display">
<thead>
    <tr>                      
        <th>Type</th>
        <th>Name</th>
    </tr>
</thead>

1 Ответ

0 голосов
/ 21 ноября 2018

Мне нужно было сделать две вещи.По отдельности ни один из них не работал.

  1. Установите для параметра data объект JSON, а не просто строку JSON
  2. Используйте точечную нотацию для ссылки на каждый элемент.

Вот рабочий код

Office.initialize = function (reason) {
$(document).ready(function () {
    app.initialize();
    window.alert = function (message) { app.showNotification("DataTable", message); };


    // The value in localStorage was set with JSON.Stringify
    // Now I make it a JSON object once again
    var attachments = JSON.parse(localStorage.getItem("Attachments"));


    // Display Table
    $('#attachment').DataTable({
        data: attachments,
        columns: [
            { data: '_data$p$0.contentType' }, //Dot notation to reference the elements
            { data: '_data$p$0.name' }
        ]
    });

});
 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...