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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单实用的分页存储过程,支持多字段排序

CREATE PROCEDURE [dbo].[PublicSplitPage_sp] TableName varchar(8000), --表名 SqlStr varchar(8000)null, --查询语句 Condition varchar(8000), --查询条件 PageIndex int, --页所引&#xff0c;从0开始 PageSize int, --分页大…

php响应超过三十秒会报错么,如何捕捉致命错误:PHP中超过30秒的最大执行时间...

你唯一的select是增加允许的执行时间(将其设置为0使其无限&#xff0c;但不推荐)或产生一个新的线程&#xff0c;并希望最好的。这是不可捕捉的原因是它并没有真正抛出。 没有一行代码实际上触发了这个错误&#xff0c;而是PHP说&#xff1a;“不&#xff0c;不好意思&#xff…

前端代码标准最佳实践:javascript篇

前言 最近一直重构项目的前端代码&#xff0c;也参考了各种前端代码的最佳实践&#xff0c;目的是让前端的HTML,CSS,Javacript代码更符合标准&#xff0c;有更好的性能&#xff0c;更好的可维护性&#xff0c;尝到了重构后的甜头&#xff0c;也萌生了写这个系列博客的念头。前端…

配置springboot在访问404时自定义返回结果以及统一异常处理

在搭建项目框架的时候用的是springboot&#xff0c;想统一处理异常&#xff0c;但是发现404的错误总是捕捉不到&#xff0c;总是返回的是springBoot自带的错误结果信息。 如下是springBoot自带的错误结果信息&#xff1a; 1 { 2 "timestamp": 1492063521109, 3 &…

nginx配置php 9000,Nginx支持php配置

Nginx本身是不支持对外部程序的直接调用或者解析&#xff0c;所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux 下是socket&#xff0c;(这个socket可以是文件socket&#xff0c;也可以是ip socket)。为了调用CGI程序&#xff0c;还需要一个FastCGI的wra…

用例写到抽筋

这几天是第一次写web类的测试用例&#xff0c;不得不说&#xff0c;写web类的测试用例真是会写死人&#xff0c;每一项都要至少写一个测试用例&#xff0c;就算以一项一个用例来算&#xff0c;一个非常非常简单的网站都要写上上百个测试用例。比如说今天写的测试用例中&#xf…

ansible 判断和循环

标准循环 模式一 - name: add several usersuser: name{{ item }} statepresent groupswheelwith_items:- testuser1- testuser2 orwith_items: "{{ somelist }}" 模式2. 字典循环- name: add several usersuser: name{{ item.name }} statepresent groups{{ item.g…

Windows XP中快速识别真假SVCHOST.EXE

SVCHOST.EXE是基于NT核心技术的操作系统非常重要的进程&#xff0c;它提供许多系统服务&#xff0c;比如远程过程调用系统服务 (RPCSS)、动态主机配置协议&#xff08;DPCH) 服务等与网络相关的服务。现在广大计算机用户普遍使用的Windows XP、Windows 2003等操作系统都涉及该进…

php require 500,thinkphp5出现500错误怎么办

thinkphp5出现500错误&#xff0c;如下图所示&#xff1a;require(): open_basedir restriction in effect. File(/home/wwwroot/pic/thinkphp/start.php) is not within the allowed解决方法&#xff1a;1、我是lnmp1.4 php5.6&#xff0c;php.ini里面的open_basedir 是注释掉…

eclipse从svn导入maven项目变成普通项目解决办法

右击项目-->configure-->Convert to Maven Project转载于:https://www.cnblogs.com/zhanzhuang/p/9105463.html

php安装soap扩展

例&#xff1a; 1、编译安装 解压对应php版本安装包 进入解压后的ext目录 phpize --生成configure文件&#xff0c;报以下错误&#xff0c;可以忽略 ------------------------------------------------------------------------------ Configuring for: PHP Api Version: …

php yaf 教程,Yaf教程2:入门使用

接下来我们通过最简单的“hello yaf”例子说明 Yaf 的用法&#xff0c;然后一步步走向更加复杂的用法。Yaf的PHP官方手册位置是&#xff1a;http://php.net/manual/zh/book.yaf.php&#xff0c;这比鸟哥(Yaf作者)自己博客 http://www.laruence.com/manual/的文档要新&#xff0…

在移动端项目中使用vconsole

1.先在项目中引入 <script type"text/javascript" src"vconsole.min.js"> 2.初始化vConsole window.vConsole new window.VConsole({defaultPlugins: [system, network, element, storage], // 可以在此设定要默认加载的面板maxLogNumber: 1000 });…

如何创建路径别名

在访问页面时&#xff0c;页面地址会以 DocumentRoot所指定的路径为相对路径&#xff0c;但若不想使用指定的路径&#xff0c;则需要创建路径别名。假如DocumentRoot为/var/www/html &#xff0c;现想将/var/www/html/mail 建立别名/web/mail&#xff0c;该如何修改呢&#xff…

matlab矩阵除以一个数字,matlab矩阵中每一行数除以一个数 | 学步园

例如&#xff1a;用a中每一行数除以x中相对应的每一个数x[5 10 6 8 16 6 8 8 22 11];a[4 4 4 5 4 4 4 4 3 46 8 6 2 6 8 8 6 8 64 4 4 4 6 4 4 4 6 44 6 6 4 6 6 6 4 7 410 14 14 10 12 12 12 10 14 123 5 5 3 6 3 3 4 5 44 6 7 4 4 4 4 4 6 64 6 6 6 5 6 5 5 7 613 16 19 16 1…

Redis(四):Spring + JedisCluster操作Redis(集群)

1.maven依赖&#xff1a; <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.3</version> </dependency> 2.增加spring 配置 <!-- JedisCluster配置 --> <bean …

js对象数组转java对象数组对象数组对象数组对象,前台js数组json字符串,后台json转为对象数组的具体实现...

$("#savaUserSet").click(function(){var JSONArr[];$("i[nameeventName]").each(function() {//获取所有name属性为eventName的i标签,并遍历if(!($(this).hasClass("active"))){var eventCode$(this).attr("id");var eventName$(this…

matlab绘制烟花,[原创]利用MATLAB燃放烟花(礼花)

function firework% 烟花烟花满天飞% CopyRight&#xff1a;xiezhh(谢中华)% 2011.6.25OldHandle findobj( Type, figure, Tag, FireWork ) ;if ishandle(OldHandle)close(OldHandle) ;end% 图形窗口初始化fig figure(units,normalized,position,[0.1 0.1 0.8 0.8],...menuba…

33 -jQuery 属性操作,文档操作(未完成)

转载于:https://www.cnblogs.com/venicid/p/9110130.html

GNU C - 关于8086的内存访问机制以及内存对齐(memory alignment)

接着前面的文章&#xff0c;这篇文章就来说说menory alignment -- 内存对齐. 一、为什么需要内存对齐&#xff1f; 无论做什么事情&#xff0c;我都习惯性的问自己&#xff1a;为什么我要去做这件事情&#xff1f; 是啊&#xff0c;这可能也是个大家都会去想的问题&#xff0c;…