在上一篇微信小程序开发(十二)富文本插件wxParse的使用中,我已经使用了wxParse插件。下午有时间就仔细的把玩了一下,发现了一个bug。

问题描述


仔细看报错,我们会发现是wxParse.js文件里面的wxParseImgTap方法里面有Bug。没有imageUrls这个属性。

分析问题

后来把wxParse插件的源码都看了一次,也修复了这个bug。其实修复这个bug不需要看看那么多,只需要看wxParse.js文件里面的部分代码即可。
既然问题是找不到imageUrls这个属性,那么我们就让他找到。

看打印信息

打开调试看打印信息:
wxParse.js文件的wxParse方法中有一个打印:console.log(JSON.stringify(transData, ' ', ' '));。直接先看打印的结果:
数据很长,我们就这么看:console.log(transData);

这里我们看见了imageUrls这个属性。

继续往下看

我们发现这样的三行代码:

var bindData = {};
bindData[bindName] = transData;
that.setData(bindData);

这是在把transData的数据赋值给bindData了。那么我们就可以肯定bindData这个对象里面是有我们需要的imageUrls了。剩下的就是取到这个imageUrls属性了。
但是在上面的代码中有这么一行:that.setData(bindData);。我们知道这个setData方法是微信小程序的,但是作者在wxParse.js文件里面并没有定义这个方法。继续往下看:

// 图片点击事件
function wxParseImgTap(e) {var that = this;var nowImgUrl = e.target.dataset.src;var tagFrom = e.target.dataset.from;if (typeof (tagFrom) != 'undefined' && tagFrom.length > 0) {wx.previewImage({current: nowImgUrl, // 当前显示图片的http链接urls: that.data[tagFrom].imageUrls // 需要预览的图片http链接列表})}
}

这里作者这么取得值:urls: that.data[tagFrom].imageUrls // 需要预览的图片http链接列表,这里又有问题,that.data[key]是微信小程序取值的方式。这里又错了。

解决问题

其实在上面的问题描述中我们已经知道了是什么问题,也定位了问题。但是要解决问题,通常我们不能盯着一个点看。我们要带着问题去解决问题。
既然是找不到imageUrls,我们就让他找到。
1.在wxParse.js文件里面的wxParse方法如下修改:

var bindData = {};
bindData[bindName] = transData;
that.setData(bindData); // 这一行代码 其实是无效的
that.bindData = bindData; // 增加这一行代码

2.在wxParseImgTap方法里面如下修改:

wx.previewImage({current: nowImgUrl, // 当前显示图片的http链接// urls: that.data[tagFrom].imageUrls // 需要预览的图片http链接列表urls: that.bindData[tagFrom].imageUrls  // 注释掉上面的 换着一行
})

效果图

总结

其实问题的核心还是误用了setData方法导致的。仔细看了一下,在wxParse.js文件里面作者4次使用了setData方法和4次使用了取值that.data。最后,有问题不要怕,细心看报错,带着问题一点一点的调试。

微信小程序开发(十三)富文本插件wxParse的wxParseImgTap的bug修复相关推荐

  1. 微信小程序解析html富文本插件wxparse的使用

    第一步:下载把wxparse文件放到根目录下 第二步:引入<import src="../../wxParse/wxParse.wxml"/>  在xx.wxml页面 ...

  2. 微信小程序中使用富文本插件 wxParse

    github下载地址:https://github.com/icindy/wxParse. 下载完成后,复制 wxParse 文件夹到项目目录中(例如: utils 目录下). 在需要使用的 JS 文 ...

  3. 微信小程序如何显示富文本,类似v-html,rich-text

    一.微信小程序需求,有一段富文本字符串需要解析并展示在页面上: 结构如下 :content 二.解决办法 一.用过vue 的都知道vue 有个 v-html 属性,可以准换html格式并且展示: 但是 ...

  4. 微信小程序 - 解决 rich-text 富文本解析图片无法自适应宽高问题(图片超出屏幕宽度且不受控)

    前言 注意:您无法通过直接指定 <img> 标签样式来试图设置为自适应图片. 使用官方 <rich-text> 富文本组件解析时, 当内容包含图片(大图)时显示的结果就会超出屏 ...

  5. 微信小程序开发入门教程-文本组件介绍

    学习小程序开发要从哪开始呢?我们是开始顺序学习官方文档么?如果一开始就从头开始读官方文档,恐怕用不了多久你就放弃了.计算机是一门实践科学,我们学习的目的是为了解决现实问题.要么你想在互联网创业,开发一 ...

  6. 微信小程序:rich-text 富文本中图片自适应

    /*** 处理富文本里的图片宽度自适应* 1.去掉img标签里的style.width.height属性* 2.img标签添加style属性:max-width:100%;height:auto* 3 ...

  7. 微信小程序实战二:iView-Weapp组件引入及源码bug修复

    文章目录 1.小程序插件中集成iView 2.在需要引入组件的页面配置 1.小程序插件中集成iView 从github下载iView的dist文件夹拷贝到项目中或者是用npm更新 npm instal ...

  8. uniapp微信小程序开发,生成海报插件painter的使用

    1.引入painter插件 下载地址:https://github.com/Kujiale-Mobile/Painter 代码下载后,将component中的painter文件夹放入项目wxcompo ...

  9. 微信小程序显示HTML富文本

    效果图 上面是转化后的,下面是后台获取的HTML标签 下载wxParse文件 git地址:https://github.com/icindy/wxParse 找到 wxParse 文件夹 复制到你的项 ...

最新文章

  1. 95后女生坚持转数学专业,成功直博双一流!网友:这是高手……
  2. charles抓app包教程_charles关于手机APP抓包
  3. mongodb远程连接配置(亲测)
  4. CUDA: OpenCV requires enabled ‘cudev‘ module from ‘opencv_contrib
  5. 关于范围for语句的使用
  6. php发送email
  7. 微mysql命令行_mysql命令大全
  8. 电阻电容等常见元器件的封装介绍
  9. StretchDIBits函数
  10. 软件工程阶段性总结(一)——概述
  11. 通过.frm和.idb文件恢复mysql数据库
  12. 数据库实践LAB大纲 02 检索
  13. 腾讯 IVWEB 团队:前端识别验证码思路分析
  14. Codeforces 833D Red-Black Cobweb 边分治
  15. 【Ping命令的使用】
  16. prometheus+grafana告警,监控部署展示
  17. 多线程发生异常怎么处理咩?
  18. 用CSS实现圆角图片
  19. 艾永亮:运用超级产品战略解决这三大问题,提升企业的竞争优势
  20. 测试域名是否可用命令

热门文章

  1. TOEPL听力涉及文化背景资料
  2. 【无标题】大华DS7016 原版系统备份 硬盘坏了的福音
  3. 时间复杂度_《羊卓的杨的算法笔记》_Quentin
  4. 国内地图服务商以及情况
  5. 词频分析--字典树的应用
  6. SpringBoot+ElasticSearch 实现模糊查询,批量CRUD,排序,分页,高亮
  7. SWAN之ha/active-passive测试
  8. Linux生态之深度学习环境
  9. matlab声音信号处理 频率图 信号过滤和播放声音
  10. ea服务器 位置,ea服务器