binderror | HandleEvent | 當錯誤發生時,發布到 AppService 的事件名,事件對象event.detail = {errMsg: 'something wrong'} |
在微信小程序開發中,我們使用列表包含圖片,如果這個圖片鏈接404錯誤,那么我們應該給它提供一個默認的友好URL地址。html和js中使用onerror事件就可以了
<img src="image.gif" onerror="this.src='https:w.chesudi.com/Public/web/img/onerrorcar.png'" />
微信小程序image組件沒提供onerror事件,提供了一個binderror事件來代替。
如果圖片鏈接404,就會觸發這個binderror事件,我們在綁定的事件里修改對應的數據源就好了,如下
.wxml文件
<image class="carlist_img" src="{{item.img}}" binderror="binderrorimg" data-errorimg="{{index}}"></image>
.js文件
binderrorimg:function(e){ var errorImgIndex= e.target.dataset.errorimg //獲取循環的下標 var imgObject="carlistData["+errorImgIndex+"].img" //carlistData為數據源,對象數組 var errorImg={} errorImg[imgObject]="https://w.chesudi.com/Public/web/img/onerrorcar.png" //我們構建一個對象 this.setData(errorImg) //修改數據源對應的數據 }
易錯點:this.setData({"carlistData["+errorImgIndex+"].img":對象})類似這樣的就不正確了