由于在项目中多个页面都要用到这个代码,所以我们在utils文件夹中新建一个errorImage.js,便于在其他页面引用
errorImage.js:
//远程图片no found情况下指引
function errImgFun(ev, that){
var _errImg=ev.target.dataset.errImg;
var _errObj={};
_errObj[_errImg]="默认图片";
that.setData(_errObj);
}
module.exports = {
errImgFun: errImgFun
}
在需要的js中引入这个文件
js:
// 处理图片加载404问题
var errorImage = require("../../utils/errorImage.js");
Page({
onLoad: function (options) {
},
// 远程图片加载404显示默认图
onImageError: function (ev) {
var _that = this;
errorImage.errImgFun(ev, _that);
},
})
xhtml:
<view wx:for="{{StyleShpeSubList}}" wx:key="StyleShpeSubList">
<image src="{{item.ShAtSubPicUrl!=''?item.ShAtSubPicUrl:'默认图片'}}" binderror="onImageError" data-err-img="StyleShpeSubList[{{index}}].ShAtSubPicUrl" mode='aspectFill'></image>
</view>
原理:
当图片有错误时会触发onImageError这个方法,然后通过var _errImg=ev.target.dataset.errImg取得有错误的图片的位置,然后用setData把这个地方的图片设置成默认的图片,这样一旦有错误就会把这个错误的图片替换成默认图片