Загрузка данных запроса GET в DataTable (переключение с локального JSON на axios.get) - PullRequest
0 голосов
/ 27 февраля 2019

Раньше у меня был локальный файл JSON, который загружал данные в DataTable.

Вместо этого я переключаюсь на axios и urls - axios.get работает в других областях моегоproject.

Однако в области моего проекта, над которой я сейчас работаю, используется DataTable, который получает данные определенным образом (см. код ниже).Я отформатировал свой код, чтобы попытаться заставить его работать с форматом DT, но мне не повезло. Я могу сказать в своей консоли, что у меня есть доступ к файлу JS и функции, ноЯ не могу заставить DataTables загрузить мои данные вообще.

Я вложил фрагменты кода ниже и JSFiddle , который показывает , что раньше работало , когда я просто использовал локальный файл JSON.

Есть мысли?Мне нравится DT и его функции, но иногда мне было трудно работать с ним.

Код adm.js:

import $ from 'jquery';
import DataTable from 'datatables.net';

var moment = require('moment');

export default class {
    constructor() {

    }

loadAdmData(response) {
        let admText = $.each(response, function(idx, val) {
            console.log("loadAdmData is being reached") // --- working
            return {
                "Ct": val.Ct,
                "Status": val.AdmStatus,
                "Classification": val.Classification
            }
        }).filter(x => x.p_h_v == "") // if p_h_v is empty, don't render it to table

    if (!admText.length) $("#adm-tab").hide();

    $('#adm-table').DataTable({
        columns: [
            { data: "Ct" },
            { data: "Status" },
            { data: "Classification" }
        ],
        data: admText, // ----- this is where the data comes in
        responsive: true
    });

    }
}

index.js :

Я не хотел, чтобы это было здесь записано, поэтому я создал скрипту.

Фрагмент XML (что я пытаюсь получить):

<feed xmlns="[redacted]" xml:base="[redacted]">
<id>[redacted]</id>
<title />
<updated>2019-02-27T14:45:58Z</updated>
<entry m:etag=""8"">
<id>[redacted] />
<link rel="edit" href="[redacted]" />
<title />
<updated>2019-02-27T14:45:58Z</updated>
<author>
<content type="application/xml">
<m:properties>
<d:AdmStatus>Active</d:AdmStatus>
<d:Ct m:type="SP.Taxonomy.TaxonomyFieldValue">
<d:Classification>[redacted]</d:Classification>
</m:properties>
</content>
</entry>

JSONфрагмент (локальный файл, который я использовал для получения)

{
  "d": {
    "results": [
      {
        "admstatus": "Active",
        "classification": "[redacted]",
...etc

1 Ответ

0 голосов
/ 27 февраля 2019

Полагаю, в этой части кода есть какая-то проблема

then(axios.spread((adm) => {

    let admissData = adm.data.d.results;
    ///
    let aComp = new admComponent(admData);
        aComp.loadAdmData(admData);

}))

Попробуйте отладить следующее:

  1. Что здесь admData.
  2. Вывести admissData на консоль
  3. Является ли формат JSON admissData тем же, что и для локальных данных

Редактировать 1:

  1. Если значения ключей отличаютсятогда, возможно, у вас возникли проблемы при чтении данных здесь

            return {
                "Ct": val.Ct,
                "Status": val.AdmStatus,
                "Classification": val.Classification
            }
    
  2. Также напечатайте admText, чтобы увидеть, правильно ли сформирован Json

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