Проблема в том, что значение backgroundImage
должно быть такой строкой:
<div class="circular" v-bind:style="{ backgroundImage: 'url(' + image + ')' }"></div>
Вот упрощенная скрипка, которая работает: https://jsfiddle.net/89af0se9/1/
Re: комментарий к кебаб-кейсу ниже, вот как это можно сделать:
<div class="circular" v-bind:style="{ 'background-image': 'url(' + image + ')' }"></div>
Другими словами, значение для v-bind:style
- это простой объект Javascript и следует тем же правилам.
ОБНОВЛЕНИЕ: еще одно замечание о том, почему у вас могут возникнуть проблемы с тем, чтобы это работало.
Вы должны убедиться, что ваше image
значение заключено в кавычки, чтобы конечная результирующая строка была:
url('some/url/path/to/image.jpeg')
В противном случае, если в URL-адресе изображения есть специальные символы (например, пробелы или круглые скобки), браузер может неправильно их применить. В Javascript это задание будет выглядеть так:
this.image = "'some/url/path/to/image.jpeg'"
или
this.image = "'" + myUrl + "'"
Технически это можно сделать в шаблоне, но экранирование, необходимое для сохранения правильного HTML, того не стоит.
Дополнительная информация здесь: действительно ли необходимо указывать значение url ()?
backgroundImage
), а не kebab case (background-image
), хотя в документации указано, что это может быть и то, и другое.