我正在尝试使用v-for
遍历包含标题和图标的数据。现在我只能通过循环获得一个图标,我的问题是,如何在循环过程中获得一个以上的图标?
我制作了一个Codepen:https://codepen.io/anon/pen/MMaGOZ?&editable=true&editors=101。因此,基本上在此示例中,如何获得多个图标。因此,如果我还希望在仪表板旁边放置一个搜索图标。
<div id="app">
<v-app id="inspire">
<v-navigation-drawer
class="blue lighten-3"
dark
permanent
>
<v-list>
<v-list-tile
v-for="item in items"
:key="item.title"
@click=""
>
<v-list-tile-action>
<v-icon>{{ item.icon }}</v-icon>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>{{ item.title }}</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
</v-list>
</v-navigation-drawer>
new Vue({
el: '#app',
data () {
return {
items: [
{ title: 'Dashboard', icon: 'dashboard','search' },
{ title: 'Account', icon: 'account_box' },
{ title: 'Admin', icon: 'gavel' }
]
}
}
})
如果我这样做icon: 'dashboard', 'search'
=>这会给我一条错误消息。不确定如何获得?
谢谢。
答案 0 :(得分:6)
如评论中所述,{ icon: 'dashboard', 'search' }
无效,您将要使用数组(或类似的列表/集合),例如
items: [
{ title: 'Dashboard', icon: ['dashboard','search'] },
{ title: 'Account', icon: ['account_box'] },
{ title: 'Admin', icon: ['gavel'] }
]
请注意,即使它们只有一个图标,我也将所有icon
属性设置为数组。这是为了使所有内容保持一致并易于使用。
然后在模板中,您可以迭代另一个v-for
<v-list-tile-action>
<v-icon v-for="icon in item.icon" :key="icon">{{ icon }}</v-icon>
</v-list-tile-action>