【发布时间】:2020-07-30 08:54:37
【问题描述】:
我正在尝试动态创建输入组件,因为我需要为每个输入指定一个特定的图标。
图标设置为输入作为背景图像,当我直接在 css 中使用它时它可以工作,就像background-image: url(../../assets/icons/email.svg);
<template>
<section class="input-box">
<input class="input-field" type="text" :style="imgIcon">
<label>{{title}}</label>
</section>
</template>
<script>
export default {
props: ["title", "bgImg"],
computed: {
imgIcon() {
return 'background-image: url(./assets/icons/' + this.bgImg + ')';
}
}
}
</script>
当我将名称作为字符串传递时
<custome-input title="password" bgImg="'p_key.svg'"></custome-input>
错误已解决,但没有任何显示!
到底出了什么问题?
【问题讨论】:
-
你不应该在 vue 中使用相对路径。尝试改用
@别名。它是根目录的别名。 -
@Nicolas 我试过这个
return 'background-image: url(@/assets/icons/' + this.bgImg + '.svg)';,但也没有用 -
我认为网址也需要用引号引起来。 :
return 'background-image: url(\'@/assets/icons/' + this.bgImg + '.svg\')' -
也没有用。仍然说找不到该文件:/
标签: javascript html css vue.js vue-component