【发布时间】:2020-09-15 18:55:29
【问题描述】:
我在 vuetify 中有一个项目列表,我希望每个项目都有一个在点击时打开的菜单。目前我的菜单正确正确,但在选择任何项目时,它会立即打开所有物品的菜单,而不是单击时单独单独。我在这里做错了什么?
<v-list-item-group>
<RecycleScroller
v-if="drive_stop_info.drive_stop_list.length > 0"
v-slot="{ item }"
class="scroller"
:items="history_list"
:item-size="50"
key-field="_index"
>
<v-list-item
class="py-0 px-2"
dense
flat
selectable>
<v-menu
v-model = "zone_list_visible"
no-ripple
:close-on-content-click="true"
>
<template v-slot:activator="{ on, attrs }">
<v-avatar
@click="zoneListVisible(item)"
v-if="getZoneArray(item).length>2"
v-bind="attrs"
v-on="on"
color="grey lighten-2"
size="30"
class="grey--text">
+{{getZoneArray(item).length-2}}
</v-avatar>
</template>
<v-list dense>
<v-list-item
v-for="(zone, i) in getZoneArray(item)"
:key="i"
@click="panMapToZone(zone.zone_id)"
>
<v-chip :color="zone.detail.hex_color"> {{ zone.display_name }}</v-chip>
</v-list-item>
</v-list>
</v-menu>
</v-list-item>
</RecycleScroller>
</v-list-item-group>
数据:
data() {
return {
zone_list_visible: false,
menu_item: undefined,
},
在方法中:
zoneListVisible(item){
this.zone_list_visible = true;
this.menuItem = item;
},
【问题讨论】:
-
您需要将
v-for项目移动到它自己的组件并在那里保持反应性属性。如果这没有帮助,那么在 Skype 上 ping 我:syed_haroon
标签: javascript vue.js vuetify.js