問題は、の値が次のbackgroundImage
ような文字列である必要があることです。
<div class="circular" v-bind:style="{ backgroundImage: 'url(' + image + ')' }"></div>
動作している簡略化されたフィドルは次のとおりです:https://jsfiddle.net/89af0se9/1/
再:ケバブケースについての以下のコメント、これはあなたがそれをすることができる方法です:
<div class="circular" v-bind:style="{ 'background-image': 'url(' + image + ')' }"></div>
つまり、の値v-bind:style
は単なるJavascriptオブジェクトであり、同じルールに従います。
更新:これを機能させるのに問題がある理由についてのもう1つの注意事項。
image
結果の文字列が次のようになるように、値が引用符で囲まれていることを確認する必要があります。
url('some/url/path/to/image.jpeg')
そうしないと、画像のURLに特殊文字(空白や括弧など)が含まれている場合、ブラウザがそれを適切に適用しない可能性があります。Javascriptでは、割り当ては次のようになります。
this.image = "'some/url/path/to/image.jpeg'"
または
this.image = "'" + myUrl + "'"
技術的には、これはテンプレートで実行できますが、有効なHTMLを維持するために必要なエスケープは価値がありません。
詳細はこちら: url()の値を引用することは本当に必要ですか?
backgroundImage
ケバブケース(background-image
)ではなくキャメルケース()である必要がありますが、ドキュメントにはどちらでもかまいません。