我有一个GET请求数据填充的div。我要这样做,以便如果不满足某些条件(没有任何数据),则div是隐藏的。当我使用本地JSON文件时,它可以正常工作,但是自从我切换到REST和axios以来,我不得不转换自己拥有的东西。
当我运行console.log(admText.length)
时,我得到的是0
,并且div隐藏在浏览器中,但是我渲染的用户数据确实包含数据。因此,他们的页面应显示该div。
我感觉我的if
语句在错误的位置,但是我不确定该去哪里。将其放在let admText
块中会导致错误。
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
答案 0 :(得分:0)
您确定response
是一个数组吗?如果您是从GET获取的,则可能是JSON字符串。
.map()将返回一个数组,因此admText
是一个数组,由于您将.length
称为'0'
,这意味着您的映射函数由于某种原因而失败。
您应该尝试console.log(response);
和console.log(admText);
来查看您在地图中放置的内容以及从地图中获取的内容。