微信小程序开发(十三)富文本插件wxParse的wxParseImgTap的bug修复
在上一篇微信小程序开发(十二)富文本插件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修复相关推荐
- 微信小程序解析html富文本插件wxparse的使用
第一步:下载把wxparse文件放到根目录下 第二步:引入<import src="../../wxParse/wxParse.wxml"/> 在xx.wxml页面 ...
- 微信小程序中使用富文本插件 wxParse
github下载地址:https://github.com/icindy/wxParse. 下载完成后,复制 wxParse 文件夹到项目目录中(例如: utils 目录下). 在需要使用的 JS 文 ...
- 微信小程序如何显示富文本,类似v-html,rich-text
一.微信小程序需求,有一段富文本字符串需要解析并展示在页面上: 结构如下 :content 二.解决办法 一.用过vue 的都知道vue 有个 v-html 属性,可以准换html格式并且展示: 但是 ...
- 微信小程序 - 解决 rich-text 富文本解析图片无法自适应宽高问题(图片超出屏幕宽度且不受控)
前言 注意:您无法通过直接指定 <img> 标签样式来试图设置为自适应图片. 使用官方 <rich-text> 富文本组件解析时, 当内容包含图片(大图)时显示的结果就会超出屏 ...
- 微信小程序开发入门教程-文本组件介绍
学习小程序开发要从哪开始呢?我们是开始顺序学习官方文档么?如果一开始就从头开始读官方文档,恐怕用不了多久你就放弃了.计算机是一门实践科学,我们学习的目的是为了解决现实问题.要么你想在互联网创业,开发一 ...
- 微信小程序:rich-text 富文本中图片自适应
/*** 处理富文本里的图片宽度自适应* 1.去掉img标签里的style.width.height属性* 2.img标签添加style属性:max-width:100%;height:auto* 3 ...
- 微信小程序实战二:iView-Weapp组件引入及源码bug修复
文章目录 1.小程序插件中集成iView 2.在需要引入组件的页面配置 1.小程序插件中集成iView 从github下载iView的dist文件夹拷贝到项目中或者是用npm更新 npm instal ...
- uniapp微信小程序开发,生成海报插件painter的使用
1.引入painter插件 下载地址:https://github.com/Kujiale-Mobile/Painter 代码下载后,将component中的painter文件夹放入项目wxcompo ...
- 微信小程序显示HTML富文本
效果图 上面是转化后的,下面是后台获取的HTML标签 下载wxParse文件 git地址:https://github.com/icindy/wxParse 找到 wxParse 文件夹 复制到你的项 ...
最新文章
- 95后女生坚持转数学专业,成功直博双一流!网友:这是高手……
- charles抓app包教程_charles关于手机APP抓包
- mongodb远程连接配置(亲测)
- CUDA: OpenCV requires enabled ‘cudev‘ module from ‘opencv_contrib
- 关于范围for语句的使用
- php发送email
- 微mysql命令行_mysql命令大全
- 电阻电容等常见元器件的封装介绍
- StretchDIBits函数
- 软件工程阶段性总结(一)——概述
- 通过.frm和.idb文件恢复mysql数据库
- 数据库实践LAB大纲 02 检索
- 腾讯 IVWEB 团队:前端识别验证码思路分析
- Codeforces 833D Red-Black Cobweb 边分治
- 【Ping命令的使用】
- prometheus+grafana告警,监控部署展示
- 多线程发生异常怎么处理咩?
- 用CSS实现圆角图片
- 艾永亮:运用超级产品战略解决这三大问题,提升企业的竞争优势
- 测试域名是否可用命令