El problema es que el valor de backgroundImage
debe ser una cadena como esta:
<div class="circular" v-bind:style="{ backgroundImage: 'url(' + image + ')' }"></div>
Aquí hay un violín simplificado que está funcionando: https://jsfiddle.net/89af0se9/1/
Re: el comentario a continuación sobre kebab-case, así es como puedes hacer eso:
<div class="circular" v-bind:style="{ 'background-image': 'url(' + image + ')' }"></div>
En otras palabras, el valor de v-bind:style
es solo un objeto Javascript simple y sigue las mismas reglas.
ACTUALIZACIÓN: Otra nota sobre por qué puede tener problemas para hacer que esto funcione.
Debe asegurarse de que su image
valor esté entre comillas para que la cadena final resultante sea:
url('some/url/path/to/image.jpeg')
De lo contrario, si la URL de su imagen tiene caracteres especiales (como espacios en blanco o paréntesis), es posible que el navegador no la aplique correctamente. En Javascript, la asignación se vería así:
this.image = "'some/url/path/to/image.jpeg'"
o
this.image = "'" + myUrl + "'"
Técnicamente, esto podría hacerse en la plantilla, pero el escape requerido para mantenerlo HTML válido no vale la pena.
Más información aquí: ¿Es realmente necesario citar el valor de url ()?
backgroundImage
) no un caso de kebab (background-image
), aunque los documentos dicen que puede serlo.