ปัญหาคือค่าสำหรับbackgroundImage
ต้องเป็นสตริงดังนี้:
<div class="circular" v-bind:style="{ backgroundImage: 'url(' + image + ')' }"></div>
นี่คือซอที่ใช้งานง่าย: https://jsfiddle.net/89af0se9/1/
Re: ความคิดเห็นด้านล่างเกี่ยวกับ kebab-case นี่คือวิธีที่คุณสามารถทำได้:
<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
) ไม่ใช่เคสเคบับ (background-image
) แม้ว่าเอกสารจะบอกว่าสามารถเป็นได้ก็ตาม