Vue.js項目中,當圖片無法顯示時則顯示默認圖片使用onerror方法
最近在學習Vue時,遇到了一個問題,就是從后台傳過來的圖片路徑無效時,需要在頁面顯示默認圖片
本人試了3種方法,2種方法失敗了(失敗原因:圖片定位失敗)
失敗方法一:
見http://blog.csdn.net/qq_32786873/article/details/53483951
失敗方法二:
直接把圖片路徑直接寫在data里面作為變量傳到模板中,但是卻發現圖片還是出不了,以為是圖片路徑的問題,
查了半天才發現項目啟動后圖片的路徑並不是我們寫的路徑了。比如我們寫的圖片路徑是:../assets/img.png,
但是在網頁開發者工具查看時路徑卻是:/static/img/img.4aa0af1.png,也就是說圖片路徑是有變化的。
解決方法(在方法二的基礎上改進的):
使用require將圖片進入,寫法如下:
data: () => ({
logo: 'this.src="' + require('../assets/img.png') + '"'
})
注:我是在data里就將字符串拼接好了,當然也可以在onerror方法里拼接,這里就不贅述了。
然后在img的onerror方法中調用:
<img v-bind:src="userData.photo" :onerror="logo" class="img-box4">
在v-bind標簽中,單引號' '引用的內容作為字符串存在;雙引號" "引用的內容作為變量/表達式存在,可以進行運算。
