【问题标题】:VueJS interpolation in src attributesrc 属性中的 VueJS 插值
【发布时间】:2018-11-18 00:17:00
【问题描述】:

在带有 TypeScript 和 Vuetify 应用程序的 VueJS 中,我有十张图片,分别称为 picture1.png、picture2.png、picture3.png 等。我正在尝试为每张图片制作 <div><img src="../assets/pictures/picture1.png"/></div>。这是我的代码:

<template>
    <div class="home">
        <div class="pictures">
            <div v-for="index in Array.from({length: 10}, (v, k) => k+1)" :key="index">
                <img src='../assets/pictures/picture{{index}}.png'>
            </div>
        </div>
    </div>
</template>

这有一个错误,即属性中的插值已被删除。正如回答 this question 所解释的那样,您应该使用 v-bind 代替:

<template>
<div class="home">
    <div class="picture">
        <div v-for="index in Array.from({length: 10}, (v, k) => k+1)" :key="index">
            {{index}}
            <img :src="'../assets/pictures/picture' + index + '.png'">
        </div>
    </div>
</div>

例如,输出十张损坏的图像, src 字面意思是这样的: src="../assets/pictures/picture1.png"

而且该文件不存在,所以它显示损坏的图像图标。

如果我只使用&lt;img src='../assets/pictures/picture1.png'&gt;,它可以工作,并且dom检查器中显示的图像url是&lt;img src="/img/picture1.ea361a2e.png"&gt;

有没有办法正确处理在 Vue 中动态构建 img srcs,但仍允许它以处理正常 srcs 的方式处理它,而无需动态绑定?

【问题讨论】:

  • 我不明白为什么您在 dom 检查器中看到的工作 url 的路径和文件名不同。无论哪种方式,您都可以尝试:src=`path/to/image${index}.png`
  • @johan 使用 vue-cli 3 和 npm run serve 生成​​的项目会有所不同吗?

标签: typescript vue.js src vuetify.js


【解决方案1】:

我很幸运地做了以下事情。

:src="require(`images/image-${index}.png`)"

【讨论】:

    猜你喜欢
    • 2015-06-09
    • 2020-02-25
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 2017-04-02
    • 1970-01-01
    • 2021-03-14
    相关资源
    最近更新 更多