微信公众平台关于image组件的讲解都挺详细的,至于在binderror错误事件处理上并没有详细说明。那么如果我们在获取网络图片出现404 nofound的情况下要怎么处理呢?如果是单张和循环内的某张图片出错的情况下又该如何处理呢?

首先,我们都知道html的img组件自带一个onerror图片出错事件处理机制,写法就如同js一样。语法如下:

<img src="xxx" οnerrοr="this.src='./img/default.png'"/>

但是,我尝试在小程序里的image组件也做这样的处理,却发现并不能实现,反而要提示APP-SERVICE-Engine错误信息。后来重新翻看文档,找到类似的事件处理binderror,文档支出可以通过event.detail打印出具体的出错信息,并没有给出出错后的具体解决方案。通过和前辈沟通得到的解决方案如下:

通过dataset属性将image组件的src变量值存入。binderror事件通过获取属性变量值改变data的数据。当然这个有个弊端,就是image组件的src是动态的值而不能是直接指向某张图片的情况下。

那么具体处理代码如下:

demo.wxml::

单张图片:

<image src="{{testImg}}" binderror="errImg" bindload="loadImg" data-err-img="testImg" />

多张图片的情况:

      <view class="bd-left-item" wx:for="{{classicArr}}"><image src="{{item.img}}" class="item-img" binderror="errImg" data-err-img="classicArr[{{index}}].img" /><view class="bd-left-item-bottom"><view class="title">{{item.title}}</view><view class="addr">{{item.addr}}</view><view class="tag" wx:for-items="{{item.tags}}" wx:for-item="tag">{{tag}}</view></view></view>

demo.js::

Page( {data: {classicArr: [{img: "../../img/01.png",title: "现实世界的桃花源",addr: "福建省南安市东田镇香草世界",tags: ["摄影", "PS"]},{img: "../../img/default.png",title: "南普陀",addr: "福建省厦门市南普陀",tags: ["摄影1", "PS"]},{img: "../../img/default.png",title: "武夷山",addr: "福建省....",tags: ["摄影", "PS2"]}],testImg: "../img/01.png"},errImg: function(e){var _errImg=e.target.dataset.errImg;var _objImg="'"+_errImg+"'";var _errObj={};_errObj[_errImg]="../../img/01.png";console.log( e.detail.errMsg+"----"+ _errObj[_errImg] + "----" +_objImg );this.setData(_errObj);//注意这里的赋值方式...}
});

演示如下::

去掉dataset属性,展示的是一片空白

加入dataset属性后,结合binderror事件处理图片

但是这样存在一个情况就是每个页面都写这个程序不是很臃肿,那么我们考虑怎么把他写入到模块js文件里面呢?

解决方案::先把this对象传入到js函数里面,就可以直接修改外面的data数据了。具体函数如下:

commons.js::

//远程图片no found情况下指引
function errImgFun(e, that){var _errImg=e.target.dataset.errImg;var _errObj={};_errObj[_errImg]="../../img/01.png";console.log( e.detail.errMsg+"----" + "----" +_errImg );that.setData(_errObj);
}
module.exports = {sayHello: sayHello,errImgFun: errImgFun
}

index.js::

var comm=require('../../common/common.js');Page({errImg: function(ev){//需要访问当前页面的数据对象传递到其它页面上var _that=this;comm.errImgFun(ev, _that);},
})

以上是个人对于binderror事件的使用,至于bindload还是不清楚要怎么使用,有知道的希望告知下~~

微信小程序实例:image组件的binderror事件处理相关推荐

  1. 微信小程序实例:image组件的binderror事件处理(2021-07-08)

    微信小程序实例:image组件的binderror事件处理 全局先定义替换图片的路径 我这里是展示了好几种不同数据源的图片,所以抽取出来: 前端代码:

  2. 微信小程序实例源码大全demo下载

    怎么本地测试微信小程序实例源码 1.下载源码 2.打开微信开发者工具 3.添加项目->选择本项目目录->编译执行 微信小程序实例源码大全 微信小程序游戏类demo:识色:从相似颜色中挑选不 ...

  3. 微信小程序使用image组件显示图片的方法

    本文实例讲述了微信小程序使用image组件显示图片的方法.分享给大家供大家参考,具体如下: 1.效果展示 2.关键代码 ① index.wxml 代码如下: <image style=" ...

  4. A095_day01_微信小程序入门与组件

    目录 微信小程序入门与组件 - Day01 1.内容介绍 2.微信小程序简介(了解) 2.1.什么是小程序 2.2.微信小程序与app的区别 2.3.小程序在入口 2.4.微信小程序的工作原理 2.5 ...

  5. 微信小程序自定义标签组件component封装、组件生命周期,组件通信

    微信小程序自定义标签组件component封装.组件生命周期,组件通信 本文来说下小程序的自定义标签组件封装. 相比于vue,react的非路由组件,微信小程序的component组件要麻烦些,而且生 ...

  6. 微信小程序 F2 图表组件

    @antv/f2-canvas 微信小程序 F2 图表组件 安装 npm i @antv/f2-canvas 快速开始 下面我们就开始使用 f2-canvas 组件来绘制图表吧,这里假设用户已经初步了 ...

  7. 微信小程序-MAP API组件 合集

    合集不断更新,总有一款适合你~ map组件&API 官方文档 组件map | 微信开放文档 APIMapContext | 微信开放文档 获取当前的地理位置.速度.wx.getLocation ...

  8. php 实现tab切换_微信小程序实例:实现顶部tab切换以及滑动切换时导航栏会随着移动的效果(代码)...

    本篇文章给大家带来的内容是关于微信小程序实例:实现顶部tab切换以及滑动切换时导航栏会随着移动的效果(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 实现的效果: js: Pa ...

  9. 微信小程序_基础组件学习02

    微信小程序_基础组件学习02 swiper组件 swiper是滑块容器,也就是手机端的轮播图. swiper组件有两部分组成swiper和swiper-item. swiper-item需要放在swi ...

  10. 微信小程序基于swiper组件的tab切换

    代码地址如下: http://www.demodashi.com/demo/14010.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...

最新文章

  1. 算法——计算的灵魂(《算法》一本写了近40年的书)
  2. 变量 || 数据类型
  3. 《高性能JavaScript》第五章 字符串和正则表达式
  4. w7重启计算机打印机无法使用,win7系统电脑重启打印机服务就会被关闭的解决方法...
  5. 如何计算代码的运行性能
  6. vis.js入门_使用TensorBoard数据Vis的TensorFlow手术分类器入门
  7. 用Excel教会你PID算法
  8. 多麦克风做拾音的波束_【技术交流】音控未来——进击的麦克风阵列技术
  9. 红巨星转场特效预设AE插件 Red Giant Universe 6.0.1 WIN
  10. 笔记本window7安装虚拟机centos7后通过笔记本无线网卡上网
  11. tarjan算法讲解。
  12. 联合分析法(Python实现)
  13. Jenkin权限控制——基于角色授权策略
  14. 因果分析系列1--入门
  15. php7 phalcon,GitHub - shyn0121/cphalcon7: Phalcon7 - Web framework for PHP7.x 高性能PHP7框架
  16. 第十周实验指导--任务3--先建立一个Point(点)类,再派生出一个Circle(圆)类,再派生出一个Cylinder(圆柱体)类...
  17. Three.js基础入门系列(一)
  18. linux基本功系列之wc命令实战
  19. maven中央仓库,其他公共库
  20. java 百分比转化为double_java中double转化为百分数

热门文章

  1. Kali-现代化工具基础建设
  2. mysql怎么加快搜索_优化mysql数据库 提高检索速度
  3. 第一台生物计算机,我国研制成功第一台生物计算机
  4. 电视升级鸿蒙系统,网友升级了鸿蒙系统,各项体验都很不错,终于有了自己的系统...
  5. qt creator使用vcpkg
  6. 一件登录facebook_Facebook抵制抵制是防火的,那是一件好事
  7. 2008年网游发展热点:教育网游产业分析
  8. CTF - MISC安全杂项解题事项
  9. Unity灯光烘焙设置详解
  10. 查看github星数排行榜