【问题标题】:How to get current item index in v-carousel?如何在 v-carousel 中获取当前项目索引?
【发布时间】:2020-01-28 11:25:16
【问题描述】:

我有以下代码可以循环轮播,这很好,但我希望能够将项目标题显示在图像顶部。我想办法做到这一点是创建一个新的数据值,每次轮播更改时都会更新。但是我不知道该怎么做。

<v-carousel>
  <v-carousel-item
    v-for="(item,i) in servicesCarouselItems"
    :key="i"
    :src="item.src"
  >

  </v-carousel-item>
</v-carousel>
<v-card-title class="justify-center">{{currentTitle}}</v-card-title>


<script>
export default {
  data: () => ({
      currentTitle: '',
      servicesCarouselItems: [
        {
          name: "Title1",
          src: require('../../1.jpeg'),
        },
        {
          name: "Title2",
          src: require('../../2.jpeg'),
        },
        {
          name: "Title3",
          src: require('../../3.jpeg'),
        }
      ],
  })
}
</script>

【问题讨论】:

  • 你应该看看v-carouselinput事件监听器

标签: javascript vue.js vuejs2 vuetify.js


【解决方案1】:

可能最好的方法是使用v-model - 当前项目的索引在那里公开...

<v-carousel v-model="currentIndex">
  <v-carousel-item
    v-for="(item,i) in servicesCarouselItems"
    :key="i"
    :src="item.src"
  >

  </v-carousel-item>
</v-carousel>
<v-card-title class="justify-center">{{ currentTitle }}</v-card-title>
<script>
export default {
  data: () => ({
      currentIndex: 0,
      servicesCarouselItems: [
        {
          name: "Title1",
          src: require('../../1.jpeg'),
        },
        {
          name: "Title2",
          src: require('../../2.jpeg'),
        },
        {
          name: "Title3",
          src: require('../../3.jpeg'),
        }
      ],
  }),
  computed: {
    currentTitle() {
      return this.servicesCarouselItems[this.currentIndex].name
    }
  }
}
</script>

【讨论】:

  • 感谢这真的很有帮助。最后,我正在寻找“v-on:change”。为了证明这一点,我已经回答了我自己的问题。
  • @change 是一个 Vue 事件而不是 Vuetify :)
【解决方案2】:

我设法通过使用 v-on:change / @change Vue 事件解决了这个问题,如下例所示。

<v-carousel @change="currentTitle = servicesCarouselItems[$event].name">
  <v-carousel-item
    v-for="(item,i) in servicesCarouselItems"
    :key="i"
    :src="item.src"
  >

  </v-carousel-item>
</v-carousel>

感兴趣的读者可以继续阅读: https://renatello.com/get-selected-value-on-change-in-vuejs/#The_advantages_of_using_change_event_instead_of_v-model_binding

【讨论】:

猜你喜欢
  • 2015-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-09
相关资源
最近更新 更多