当前位置: 首页 > 知识库问答 >
问题:

如果v-img加载错误,如何显示“未找到图像”图像

万坚壁
2023-03-14

查看此代码笔,了解简单的vuetify设置。

https://codepen.io/khoulaiz/pen/gObJPxO?editors=1010

<template>
  <div id="app">
    <v-app>
      <v-content>
        <v-container>
          <v-row>
            <v-col v-for="i in images" :key="i" cols="4">
              <v-img max-height="150" max-width="150" :src="i" @error="errorHandler"/>
            </v-col>
          </v-row>
        </v-container>
      </v-content>
    </v-app>
  </div>
</template>

<scritp>
  new Vue({
    el: '#app',
    vuetify: new Vuetify(),
    data: () => ({
      images: [
        "https://via.placeholder.com/150",
        "https://via.placeholder.com/doesnotexist",
        "https://via.placeholder.com/152"
      ]
    }),
    methods: {
      errorHandler(url) {
        images[1] = "https://via.placeholder.com/151"
        this.$forceUpdate()
    }
  }
})
</script>

中间图像将无法加载。我有一个错误处理程序,其中我想用一个工作映像替换失败映像的src属性,并在其中强制重新加载映像。

我能够替换失败映像的src,但我在强制重新加载v-img的所有尝试中都失败了。

到底为什么我没有得到一个失败加载的v-img的参考?相反,我得到了失败的网址,这并不能帮助我找到失败的元素。:-(

请告诉我,如何强制第二个映像显示备份映像。请注意,图像应该是v-for循环的一部分。

共有2个答案

易研
2023-03-14

您可以使用ref,以便轻松访问html对象。如下

 <v-col v-for="i in images" :key="i" cols="4">
          <v-img max-height="150" max-width="150" :src="i" :ref="'img_' + i" @error="errorHandler(i)"/>
 </v-col>

您需要设置唯一引用并将该唯一引用传递给errorHandler参数。

从errorHandler中,可以获取该参数并通过设置新src的ref检索图像对象dom

errorHandler(i) {
    this.$refs['img_' + i][0].src = "https://via.placeholder.com/151"
}
芮承运
2023-03-14

您需要使用this访问图像。

errorHandler更改为以下应该可以做到这一点

errorHandler(url) {
  this.images[1] = "https://via.placeholder.com/151"
  this.$forceUpdate()
} 
 类似资料:
  • 问题内容: 我需要做的事情很简单,但是(对我来说)很难做到: 使用 javascript ,给定图像名称,即“ image01.jpg”,我需要检查该图像是否存在于某个文件夹或路径(本地或网络)中。如果该文件夹下不存在该图像,则需要检查另一个文件夹中是否存在同一图像。 例如,使用伪代码 您建议采用哪种方法?我尝试先使用ajax来实现此目的,然后使用javascript的Image()来实现,但是在

  • 单击标准容器(弹出窗口)后,它不会打开“创建容器”(弹出窗口)窗口。 手动地,所有功能都正常工作,但是SeleniumIDE抛出错误“找不到映像”

  • 我正在尝试使用带有xslt的外部图形来生成PDF。大多数图像都工作正常,但偶尔会有一张“找不到”,尽管可以在Web浏览器上查看。FOP吐出的错误如下: 这是我的外部图形部分: 知道我做错了什么吗? 编辑:看起来这个问题与服务器不允许访问自动请求有关。有没有办法在fop 2.1中设置用户代理的URIResolver?这一功能似乎存在于以前的版本中,但我似乎找不到一种在2.1中实现的方法。

  • 它将我带到图库以选择图像,但未显示在应用程序中,当单击上传按钮时,它只是一个空白图像视图 < li >我的Java代码 < li>XML代码 运行时显示此错误 java.lang.IllegalArgumentException:uri不能为空 以下两处给出错误的行显示了uri错误

  • 我需要设置公司代理,以便Docker可以从公共注册表下载图像。 我使用Ubuntu 12.04机器。我找到了这个答案,但是在Ubuntu 12.04中不存在。我该怎么做呢? 谢谢

  • 我正在使用具有响应图像的引导。我想通过向浏览器提供多种图像大小来优化加载时间。根据本文,使用srcset这样的简单方法有助于让浏览器选择最佳图像大小: 我的问题是,将其与引导img响应类相结合,即使只需要一张小图片,也会加载一张大图片。 代码示例:Bootply。使用Chrome进行测试,它内置支持srcset支持!其他一些浏览器需要picturefill.js才能识别它。) 如果您复制图像的源(