在vue.js中使用v-for循环?

时间:2019-06-14 05:02:37

标签: javascript vue.js vuejs2

我正在尝试使用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' =>这会给我一条错误消息。不确定如何获得?

谢谢。

1 个答案:

答案 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>