wxParse-微信小程序富文本解析组件:https://github.com/icindy/wxParse

支持Html及markdown转wxml可视化

使用

1、copy下载好的文件夹wxParse

- wxParse/-wxParse.js(必须存在)-html2json.js(必须存在)-htmlparser.js(必须存在)-showdown.js(必须存在)-wxDiscode.js(必须存在)-wxParse.wxml(必须存在)-wxParse.wxss(必须存在)-emojis(可选)

2、分别在相应的文件中引入:

let WxParse = require("../../utils/wxParse/wxParse.js");@import "../../utils/wxParse/wxParse.wxss"; <import src="../../utils/wxParse/wxParse.wxml"/>

3、使用方法

  • 数据绑定
var article ="<div>我是HTML代码</div>";/**
* WxParse.wxParse(bindName , type, data, target,imagePadding)
* 1.bindName绑定的数据名(必填)
* 2.type可以为html或者md(必填)
* 3.data为传入的具体数据(必填)
* 4.target为Page对象,一般为this(必填)
* 5.imagePadding为当图片自适应是左右的单一padding(默认为0,可选)
*/var that = this;
WxParse.wxParse('article', 'html', article, that, 5);
  • 模版引用
// 引入模板
<import src="你的路径/wxParse/wxParse.wxml"/>
//这里data中article为bindName
<template is="wxParse" data="{{wxParseData:article.nodes}}"/>

wxParse多数据循环使用方法

多条HTML共同渲染的方法

/**
* WxParse.wxParseTemArray(temArrayName,bindNameReg,total,that)
* 1.temArrayName: 为你调用时的数组名称
* 3.bindNameReg为循环的共同体 如绑定为reply1,reply2...则bindNameReg = 'reply'
* 3.total为reply的个数
*/
var that = this;
WxParse.wxParseTemArray("replyTemArray",'reply', replyArr.length, that)

循环绑定数据

var replyHtml0 =  "<div style="margin-top:10px;height:50px;"><p class="reply">wxParse回复0:不错,喜欢[03][04]</p>    </div>";
var replyHtml1 = "<div style="margin-top:10px;height:50px;"><p class="reply">wxParse回复1:不错,喜欢[03][04]</p>    </div>";
var replyHtml2 = "<div style="margin-top:10px;height:50px;"><p class="reply">wxParse回复2:不错,喜欢[05][07]</p>    </div>";
var replyHtml3 = "<div style="margin-top:10px;height:50px;"><p class="reply">wxParse回复3:不错,喜欢[06][08]</p>    </div>";
var replyHtml4 = "<div style="margin-top:10px; height:50px;"><p class="reply">wxParse回复4:不错,喜欢[09][08]</p>    </div>";
var replyHtml5 = "<div style="margin-top:10px;height:50px;"><p class="reply">wxParse回复5:不错,喜欢[07][08]</p>    </div>";
var arr = [];
arr.push(replyHtml0);
arr.push(replyHtml1);
arr.push(replyHtml2);
arr.push(replyHtml3);
arr.push(replyHtml4);
arr.push(replyHtml5);for (let i = 0; i < arr.length; i++) {WxParse.wxParse('reply' + i, 'html', arr[i], that);if (i === arr.length - 1) {WxParse.wxParseTemArray("replyTemArray",'reply', arr.length, that)}
}

模版使用

<block wx:for="{{replyTemArray}}" wx:key="">列表:{{index}}:<template is="wxParse" data="{{wxParseData:item}}"/>        //无需其他直接wxParseData:item(即使时item.htm)
</block>

注意列表的渲染只是单纯的渲染,无法动态的数据同时渲染。

解决方案:

//第一次列表赋值
this.setData({list:listRes
})let that=this;
for (let i = 0; i < listRes.length; i++) {WxParse.wxParse('topic' + i, 'html', listRes[i].topic, that);if (i === listRes.length - 1) {WxParse.wxParseTemArray("list",'topic', listRes.length, that)}
}
//根据上述操作,list的原有数据会被清楚,因此下面重新赋值相关的数据即可let list=this.data.list;
list.map((item,index,arr)=>{arr[index][0].name='abc';           //对应的时使用WxParse后的结构arr[index][0].no=index;});
//重新赋值
this.setData({list:list
})//使用
<view wx:key="{{item.no}}" wx:for="{{list}}"><text >第{{item[0].no}}题</text><text >姓名:{{item[0].name}}</text><template is="wxParse" data="{{wxParseData:item}}"/>
</view>

转载于:https://www.cnblogs.com/adoctors/p/9100870.html

微信小程序小结(3) -- 使用wxParse解析html及多数据循环相关推荐

  1. 微信小程序报错module “wxParse/wxParse.js“ is not defined

    微信小程序报错module "wxParse/wxParse.js" is not defined 解决 在本地设置把 ES6 转 ES5 勾上就 可以了

  2. 微信小程序如何实现通过js修改wxml的for循环中的属性值

    微信小程序如何实现通过js修改wxml的for循环中的属性值 要实现的效果 具体代码 要实现的效果 点击每一个活动选项,实现显示对应的操作按钮 具体代码 首先要在对应页面的js中给data中定义数组, ...

  3. 微信小程序调用php,微信小程序调用PHP后台接口 解析纯html文本

    微信小程序调用php后台接口,解析纯html文本,效果图片预览 1.微信js动态传参: wx.request({ url: 'https://m.****.com/index.php/home/xia ...

  4. mpvue 微信小程序_使用Vue.js开发微信小程序:开源框架mpvue解析

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 成全 责编 | 阿秃 转自 | 美团技术团队企业博客 前言 mpvue是一款使用Vue.js开发微信小程序的前端框架.使用此框架,开 ...

  5. 用Vue.js开发微信小程序:开源框架mpvue解析

    前言 mpvue 是一款使用 Vue.js 开发微信小程序的前端框架.使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为 H5 和小程序提供了代码复用的能力.如果想将 H5 项目改造为小程 ...

  6. 微信小程序普通二维码解析

    1.区别于微信小程序官方二维码是直接从onLoad的 options 解构出来就行,它是一个对象,这个大家都知道. 2.普通二维码 也是从onLoad的 options 里解构出来,此时options ...

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

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

  8. 很好的微信小程序小结

    一.小程序文档笔记 默认开发目录 开发目录解析 1.  app.js.app.json.app.wxss 这三个文件必须有不能删掉. 一个小程序主体部分由这三个文件组成,而且必须放在项目的根目录 js ...

  9. h5+js调取相机做取景框_使用Vue.js开发微信小程序:开源框架mpvue解析

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 成全 责编 | 阿秃 转自 | 美团技术团队企业博客 前言 mpvue是一款使用Vue.js开发微信小程序的前端框架.使用此框架,开 ...

最新文章

  1. AutoCAD WS API发布【转】
  2. centos下部署NTP时间服务器同步环境记录
  3. 计算机视觉OpenCV之人脸识别的示例(Python)
  4. python选课系统_【精选】在Monash读Data Science,人人都拥有这样一份选课指南。
  5. The TensorFlow library wasn‘t compiled to use SSE instructions, but these are available on your mach
  6. Fiori hash and route
  7. 条件注释判断浏览器版本!--[if lt IE 9](转载)
  8. 【Util】 时间天数增加,时间比较。
  9. 使用.NetCore 控制台演示 熔断 降级(polly)
  10. java socket ftp登录_基于java socket的简单FTP功能实现
  11. GW48CK/PK2/PK/PK4 系统万能接插口与结构图信号/与芯片引脚对照表
  12. 红橙Darren视频笔记 筛选View 属性动画 Adapter模式 组合动画AnimatorSet 观察者模式(对比Android ListView) 练习
  13. fpga数电基础之--------基本概念
  14. 大年三十整理的asp.net资料!(不得不收藏)
  15. 实况足球2015pc版
  16. Xilinx平台SRIO介绍(五)示例工程Example Design介绍
  17. 中国城市名列表及code
  18. 测试脚本常用知识点python
  19. 计算机怎么发音乐,有哪些方法可以把歌曲发送到远方的朋友的手机上?
  20. 浅谈IPv6网络安全问题及解决对策

热门文章

  1. HDU 4414 Finding crosses(搜索)
  2. HDU 3555 - Bomb
  3. HTML、CSS知识点总结,浅显易懂。
  4. 15 错误边界与使用技巧
  5. 05 state与setState、单向数据流
  6. 使用uni-app报错this.setData is not a function
  7. No resource found that matches the given name 'android:Widget.Material.A解决方案
  8. Java知多少(12)运算符
  9. 设计模式 之 《组合模式》
  10. java生产者消费者问题代码分析