【发布时间】:2017-08-07 21:10:58
【问题描述】:
模板:
<template v-for="(item, i) in items">
<v-divider
v-if="item.divider"
class="my-4"
:key="i"
></v-divider>
<v-list-tile
:key="i"
v-else
:to="item.to"
>
<v-list-tile-action>
<v-icon>{{ item.icon }}</v-icon>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>
{{ item.text }}
</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
</template>
脚本部分:
export default {
name: 'sideMenu',
data () {
return {
toggleKeyboardShortcuts: false,
items: [
{ icon: 'add', text: 'Create new question', to: '/question' },
{ divider: true },
{ icon: 'lightbulb_outline', text: 'Notes', to: '#' },
{ icon: 'touch_app', text: 'Reminders', to: '#' },
{ divider: true },
{ icon: 'settings', text: 'Settings', to: '#' },
{ icon: 'help', text: 'Help', to: '#' },
{ icon: 'keyboard', text: 'Keyboard shortcuts', events: { 'click': this.toggleKeyboardShortcutsDialog.bind(this) } },
{ icon: 'phonelink', text: 'App downloads', to: '#' }
]
}
},... more stuff, but not relevant for this question
我能够传递不同的属性并且事情正在正确呈现,但是传递一个 JavaScript 函数以在单击此列表中的一个项目时执行会惨遭失败。我需要这种行为来触发一个对话框(使用路由器访问页面)
【问题讨论】:
-
您是否尝试过使用
@click属性? -
@click="item.js"在v-for循环中?我不确定我会在几分钟内尝试一下 -
似乎不起作用。
-
您不想使用
item.event.click吗? -
这是我找到的方向,但实施....失败了。我在这个循环中已经有一个
v-if并且并非所有元素都弹出对话框。
标签: javascript vuejs2 vue-component