首页 > 解决方案 > 如何在特定条件下显示数组

问题描述

我必须显示我在一个组中有多少个数组。该数组通过其 ID 与组相关联。当组为-1 时,组不存在,0 禁止。因此,当数组的组 > 0 时,它具有组关联。

为了显示阵列卡,我使用了 v-for:

<div class="overview" v-for="group in groups" :key="group.id">

并显示


它错过了返回正确组中的数字的方法。我试过这个,但它不起作用

array(group) {
    http.get('array/group/' + group.id)
        .then( result => {
            if ( result.length > 0) {
                 console.log(result);
                 this.array= result.length;
            } else this.array= '0'
        })
        .catch(error => {console.error(error);
    });
    return this.array
}

标签: javascriptvue.jsvuetify.js

解决方案


问题是 javascript 中的获取是异步发生的——这意味着您的 return 语句在您的网络请求完成之前很久就执行了。与其直接返回计数,不如返回一个承诺,该承诺在网络请求完成后解析为固定装置的数量:

numberOfFixtures(group) {
    // Returning a promise, not a value
    return http.get('fixture/group/' + group.id)
        .then( result => {
            return result.length > 0
                ? result.length
                : '0';
        }).catch((error) => {
            console.error(error);
        });
    });
}

当您现在想获取灯具数量时:

numberOfFixtures(group).then((fixtureCount) => {
    // Do something with fixture count
}

推荐阅读