Le problème est que la valeur de backgroundImagedoit être une chaîne comme celle-ci:
<div class="circular" v-bind:style="{ backgroundImage: 'url(' + image + ')' }"></div>
Voici un violon simplifié qui fonctionne: https://jsfiddle.net/89af0se9/1/
Re: le commentaire ci-dessous sur kebab-case, voici comment vous pouvez le faire:
<div class="circular" v-bind:style="{ 'background-image': 'url(' + image + ')' }"></div>
En d'autres termes, la valeur pour v-bind:styleest juste un objet Javascript simple et suit les mêmes règles.
MISE À JOUR: Une autre remarque sur les raisons pour lesquelles vous pourriez avoir du mal à faire fonctionner cela.
Vous devez vous assurer que votre imagevaleur est entre guillemets afin que la chaîne résultante de fin soit:
url('some/url/path/to/image.jpeg')
Sinon, si l'URL de votre image contient des caractères spéciaux (tels que des espaces ou des parenthèses), le navigateur risque de ne pas l'appliquer correctement. En Javascript, l'affectation ressemblerait à:
this.image = "'some/url/path/to/image.jpeg'"
ou
this.image = "'" + myUrl + "'"
Techniquement, cela pourrait être fait dans le modèle, mais l'échappement requis pour le garder valide HTML n'en vaut pas la peine.
Plus d'infos ici: Est-ce vraiment nécessaire de citer la valeur de url ()?
backgroundImage) pas kebab case (background-image) même si la documentation dit que cela peut l'être non plus.