下面的代码:
<template>
<div id="projects">
<Header />
<b-container>
<div class="row">
<div :class="colSize" v-for="(data, index) in projects" :key="data._id">
<b-card :title="data.name" :sub-title="user.jobresponsibilities">
<p class="card-text">
{{data.description}}
</p>
<b-btn v-b-toggle="'collapse'+index" @click="showCollapse(data)">Toggle Collapse</b-btn>
<b-collapse :id="'collapse'+index">
<b-card>
description
</b-card>
</b-collapse>
</b-card>
</div>
</div>
</b-container>
</div>
</template>
<script>
import Header from '@/components/Header'
export default {
name: 'dashboard',
components: {
Header
},
mounted() {},
methods: {
showCollapse(data) {
this.colSize = 'col-8'
}
},
data() {
return {
user: this.$store.getters.getUser,
projects: this.$store.getters.getProject,
colSize: 'col-4',
show: false
}
}
}
</script>
<style lang="scss">
#projects {
background-color: rgb(243, 243, 243);
}
</style>
商店.js:https://jsbin.com/kejinihoci/edit?js
我想要实现的是,当我单击切换按钮时,特定的列大小会改变(css类),并且它只显示此项目的可折叠项,而不显示其他项。
我尝试将ID添加到v-model以将其添加到我的方法中,但没有成功。
2条答案
按热度按时间shyt4zoc1#
您应该执行一些动态操作,例如为每个
collapse
分配一个唯一的id(id="'collapse'+index"
),并在相应的按钮v-b-toggle="'collapse'+index"
中使用v-b-toggle
指令:要动态地更改类,应该向
projects
数组添加一个名为descShown
的属性。在
store
内getProject
操作中模板内部:
您方法应该如下所示:
anauzrmj2#
这是一个很好的机会来利用vue的构建目的-组件!为你的
<b-card>
创建一个新的组件,将你需要的属性传递给它。每个组件都有自己的数据和方法集。