Как скрыть div, если данные JSON не существуют - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть локальный файл JSON, который отображает данные в DataTable.Я создаю страницы профиля людей и сгенерировал вкладки (через Bootstrap), по которым пользователь может щелкнуть, т. Е. Щелчок по вкладке «Языки» показывает языковые навыки этого человека.

Я хочу сделать так, чтобыесли у человека нет данных (например, нет знания языка), то вкладка этого div скрыта.Я подумал, что пользователь, просматривающий страницу, не сможет увидеть данные, если не на что будет нажимать.

Я думаю, что мне нужно сделать что-то вроде if no-data $("#div-tab").hide(), но я не знаю, как я "вписать его в мой код (см. ниже).

Фрагмент JS:

import $ from 'jquery';
import admData from '../JSON/adm.json';
import DataTable from 'datatables.net';

var moment = require('moment');

function loadAdm() {
    let admText = admData.d.results
    .filter(x => x.phv === "")
    .map(function(val) {
        return {
            "Ct": val.ct,
            "St": val.st
        }
    })
    if (!admText) $("#adm-id").hide();

    $('#adm-table').DataTable({
        columns: [
            { data: "Ct" },
            { data: "St" },
            ... // -------------- irrelevant info

HTML - вкладки

<ul class="nav nav-tabs" id="myTab" role="tablist">
    <li class="nav-item">
      <a class="nav-link" id="adm-tab" data-toggle="tab" href="#adm" role="tab" aria-controls="adm-aria" aria-selected="false">Adm</a>
    </li>

1 Ответ

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

Поскольку admText является массивом, он никогда не будет ложным, поэтому условие

if (!admText) 

никогда не будет истинным.

Вам следует проверить, есть ли в массиве какие-либо элементы,так

if (!admText.length)
//stuff
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...