【问题标题】:How to hide div if conditions from GET request data are met如果满足 GET 请求数据的条件,如何隐藏 div
【发布时间】:2019-02-27 19:14:39
【问题描述】:

我有一个由 GET 请求数据填充的 div。我想这样做,如果不满足某些条件(没有任何数据),那么 div 将被隐藏。当我使用本地 JSON 文件时它可以工作,但自从我切换到 REST 和 axios 后,我不得不转换我所拥有的。

当我运行console.log(admText.length) 时,我得到一个0 并且 div 隐藏在浏览器中,但我渲染的用户数据确实包含数据。因此,他们的页面应该显示该 div。

我感觉我的 if 声明放错了地方,但我不确定它可以去哪里。将它放在let admText 块中会导致错误。

JS sn-p:

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

【问题讨论】:

    标签: javascript jquery function get


    【解决方案1】:

    你确定response 是一个数组吗?如果您从 GET 获取它,它可能是 JSON 字符串。
    .map() 将返回一个数组,因此 admText 是一个数组,并且由于您将 .length 设为 '0',这意味着您的映射函数由于某种原因而失败。
    您应该尝试console.log(response);console.log(admText); 看看您在地图中放入了什么以及从中得到了什么。

    【讨论】:

    • 我得到:[object Object],[object.....][object Object],[object..... 两者都有。
    • 至少你知道response 不是字符串。尝试在.map() 中添加console.log(val); return 之前
    • 通过这样做我得到:[object Object]{AdmStatus: "Active", Classification:.....,这是我正在寻找的数据。
    猜你喜欢
    • 2017-09-19
    • 1970-01-01
    • 2020-02-19
    • 2015-09-12
    • 2014-02-03
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多