目前,我必须使用VuentiFy和VueJS实现一个 carousel ,但我需要将默认图像设置为不同于数组的第一个元素,这取决于某些条件.

具体地说,我有一个与Slide Model的一个元素(包含图像的模型)相关的 comments 模型(一些信息).此幻灯片还通过其他元素与其他幻灯片相关联.因此,当我需要查看某个 comments 时,我必须显示其对应的幻灯片以及与该 comments 对应的所有幻灯片in order,但将直接相关的幻灯片显示为默认(或初始幻灯片).

例如,注释N与12张幻灯片数组中的7号幻灯片相关.因此,在 carousel 中,应该展示12张幻灯片,但开头的焦点应该放在7号幻灯片上.

在组件中,我有类似以下内容的内容:

<script setup lang="ts">
import { isNullOrUndefined } from '@core/utils/index'
import API_MEDIA_URL from '@/plugins/media_url'
import api from '@axios'
...
const props = defineProps(['comments', 'evalmode'])

const openedPanels = ref<number[]>([])
const slides = ref()

onMounted(() => {
  openedPanels.value = [0]

  api.get(`comment/slides/${props.comments[0].id}`).then(response => {
    slides.value = response.data
  })
})

watch(props, (newQ) => {
  openedPanels.value = [0]
})
</script>

<template>
...
<VExpansionPanels
  v-if="!isNullOrUndefined(slides) && 
    !isNullOrUndefined(props.comments)"
  multiple 
  v-model="openedPanels"
  >
  <VExpansionPanel
    v-for="comment in props.comments"
    :key="comment.id"
    v-model="openedPanels"
    >
      <v-row>
        <v-col>
          <v-card-actions class="justify-center">
            <v-carousel hide-delimiters :progress="true">
              <v-carousel-item
                v-for="(slide,i) in slides"
                  :key="i"
                  :src="API_MEDIA_URL+slide.src"
                  cover
                  ></v-carousel-item>
            </v-carousel>
          </v-card-actions>
        </v-col>
      </v-row>
  </VExpansionPanel>
</VExpansionPanels>
...
</template>

推荐答案

v-model的物业应符合您的需求. 如果您希望第7张幻灯片聚焦于首字母,则可以将值设置为activeIndex = 6

<v-carousel v-model="activeIndex">    
      <v-carousel-item
          v-for="image in images"
          :key="image.path"
          :src="image.signedUrl"
          class="overflow-auto"
          contain
        ></v-carousel-item>
</v-carousel>

Vue.js相关问答推荐

V-img不显示文件夹中的图像

我如何使用vuejs访问彼此嵌套的json对象

vue : 多个样式的类绑定在一个

如何使用 vuejs 在浏览器 url 中获取当前 product.id 的详细信息

VuetifyJS,outer-link 未显示为光标

Vuetify 在数据表中插入操作按钮并获取行数据

如何在 vuejs 中异步加载图像 src url?

Transition-group children must be keyed...but they are keyed

vuetify:以编程方式显示对话框

如何更改 Vuetify 日历日期格式

Vuejs 3 从子组件向父组件发出事件

VueJS错误编译模板

Vue 3:模块 '"../../node_modules/vue/dist/vue"' 提示

如何使用 JavaScript 按索引删除数组元素?

vue 3 使用 Vuex 和路由的服务器端渲染

如何在 VueJS 中下载本地存储的文件

使用 Vue 的点击编辑文本字段

NPM:403 禁止 - PUT http://registry.npmjs.org/[package-name] - 禁止

$emit 不会触发子事件

Vue中的嵌套循环