Как скрыть div, если выполнены условия из данных запроса GET - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть div, который заполняется данными запроса GET.Я хочу сделать так, чтобы, если определенные условия не были выполнены (нет никаких данных), то div скрыт.Это работало, когда я использовал локальный файл JSON, но так как я переключился на REST и axios, мне пришлось конвертировать то, что у меня есть.

Когда я запускаю console.log(admText.length), я получаю 0и div скрыт в браузере, но предоставленные мной данные пользователя содержат данные.Поэтому на их странице должно быть показано, что div.

У меня такое ощущение, что мое if утверждение находится не в том месте, но я не уверен, куда оно может пойти.Помещение в блок let admText приводит к ошибке.

Фрагмент JS:

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

export default class {
    constructor() {

    }

    loadAdmData(response) {
        let admText = response.map(function(val) {
            return {
                "Status": val.AdmStatus,
                "Classification": val.Classification
            }
        })

        if (admText.length == "") $("#adm-tab").hide();
         // if (!admText.length)  $("#adm-tab").hide(); // was working w/ local JSON file

        console.log(admText.length);   // shows `0`, which isn't correct

    $('#adm-table').DataTable({
        columns: [
          { data: "Status" },
          { data: "Classification" }
       ... etc

1 Ответ

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

Вы уверены, что response - это массив?если вы получаете его из GET, это может быть строка JSON.
.map () будет возвращать массив, поэтому admText - это массив, и, поскольку вы получаете .length как '0', это означает, что ваша функция отображения по какой-то причине не работает.
вам следует попробоватьconsole.log(response); и console.log(admText); чтобы увидеть, что вы помещаете внутрь карты и что вы получаете из нее.

...