我在用Vue.js(cdn)和axios从heroku和mlab那里获取信息.

我想从列表中的对象中显示一些信息,我希望每一行都像

我试过v-on按钮:click="visible=!visible"...

我希望能够在多个元素列表中的单个元素上切换显示/隐藏.

这就是我所拥有的:

index.html

<div id="app">
    <div class="list" v-for="drinks in rom">
        <button v-on:click="visible = !visible">{{ drinks.brand }}</button>

        <div class="hidden" v-show="!visible">
            <p> {{ drinks.comment }} </p>
        </div> 
    </div><!--list-->
    </div><!--app-->

main.js

new Vue({
el: '#app',
data() {
    return {
        rom: null,
        visible: true
    }
},
mounted() {
    axios
        .get('******')
        .then(response => (this.rom  = response.data))
}})

我能做什么?

推荐答案

您需要将rom声明为数组:

data() {
    return {
        rom: []
    }
},

然后,您可以向API响应中的每个数据项添加visible属性:

mounted() {
    axios
        .get('******')
        .then(response => (this.rom = response.data.map(drinks => {
                drinks.visible = true;
                return drinks;
            })
        ))
}})

然后可以在v-for的每个循环中使用visible属性:

<div class="list" v-for="drinks in rom">
    <button v-on:click="drinks.visible = !drinks.visible">{{ drinks.brand }}</button>

    <div class="hidden" v-show="!drinks.visible">
        <p> {{ drinks.comment }} </p>
    </div> 
</div><!--list-->

Vue.js相关问答推荐

Visual Studio代码中的VUE/VLAR扩展不断崩溃:JS/TS语言服务立即崩溃5次…

在VITE-VUE APP-DEV模式上重定向HTTP请求

VITE:无法为VUE单文件组件加载URL

vuejs3 youtube-plugin YT 未定义控制台错误

如何在 vue js 的一页路由下显示不同的 category._id

在Vue cli项目中,Laravel api app放在哪里以及如何在vue js中调用api?

混合使用 React 和 Vue 是个好主意吗?

vuejs vue-cli 如何使用 console.log 而不会出现任何错误

在 Vue 项目之间共享assets和组件

根据 URL 有条件地隐藏视图组件

如何从 vue.js 中的自定义组件中冒泡点击事件?

在组件外使用 VueI18n 的问题

Vuetify - 根据另一个 Select 选项过滤 Select 数据

使计算的 Vue 属性依赖于当前时间?

无法访问函数内的数据属性

在子元素 vueJS.2 之间切换active类

Vue 2 转换不起作用

在 Vue 单元测试中单击按钮时触发表单提交

如何在 vuejs 中的基于类的组件中编写计算设置器

Vue-i18n - 无法读取未定义的属性配置