Vue.js无法设置背景图像:style(twig template)

时间:2017-12-17 16:48:08

标签: javascript vue.js twig

我在Symfony 3.4项目中使用Vue.js。

我在通过Vue.js

从对象设置背景图片时遇到问题

我通过Vue遍历我的元素,只是从对象插入一些数据。 一切都很好,而不是图像。

<tr v-for="user in userObj">
    <td>
        <div class='table-image' 
             :style="{ 'background-image' : 'url(' + user.image + ')' }">
        </div>
    </td>
</tr>

我在尝试:style="{ 'background-image' : 'url(' + user.image + ')' }">

另外::style="{ 'backgroundImage' : 'url(' + user.image + ')' }">

继续::style="{ backgroundImage : 'url(' + user.image + ')' }">

没有工作:(

有人可以帮我吗?

我在 TWIG 模板中使用它。

Vue.js v2.5.11

编辑!以防万一。

Vue正在删除:style属性并且没有插入任何内容,我的意思是:在源代码中我只能看到<div class='table-image'></div>没有样式。

2 个答案:

答案 0 :(得分:1)

制作css样式选择器时,引用包含特殊字符的任何部分非常重要。

目前,当您输出网址时,它会输出为backgroundImage: url(/im/test.png)。正如您可能注意到的那样,没有引用该值。

虽然您的方法在输入没有特殊字符时有效,但当包含任何特殊字符时,将发出未定义的行为。

您应该在样式声明中添加引号:

:style="{ 'background-image' : 'url(\'' + user.image + '\')' }"

答案 1 :(得分:0)

我找到了解决方案。

文件名不能包含空格。这就是它无法正常工作的原因。

希望这会对某人有所帮助。