【支付宝小程序】 rich-text的应用

问题描述:在支付宝小程序中,rich-text的nodes 属性只支持使用 Array 类型,如果需要支持 HTML String,则需要自己将 HTML String 转化为 nodes 数组

解决方案:使用mini-html-parser2

代码样例:
index.axml
<rich-text type="text" nodes="{{htmlData}}"></rich-text>
 
index.js
import parse from 'mini-html-parser2';
Page({
  data: {
    htmlData:[]
  }, 
  onLoad: function (options) {
    var that = this;    
    var strhtml =
`<div><span>test</span>
<div><span>table test</span><table><thead><tr><th>title</th><th>title</th></tr></thead><tbody><tr><td colspan="2">yy</td><td>xx</td></tr></tbody></table></div></div>`;
    parse(strhtml, (err, htmlData) => {
      if (!err) {
        that.setData({
          htmlData,
        });
      }
    })
  }
})
 
注意事项:html字符串里的标签都要闭合,否则会转不了nodes数组,比如:<br>一定要是<br/>
     import parse from 'mini-html-parser2',有一个前提需要提前将mini-html-parser2安装到小程序根目录下,安装代码为npm install mini-html-parser2 --save(cmd命令行下安装,要先cd跳转到小程序目录,在执行安装命令)
                  如果电脑没有安装npm,请参考https://blog.csdn.net/wjnf012/article/details/80422313 先安装好npm
                  安装组件参考https://blog.csdn.net/mentalitys/article/details/89400478
                  
 
posted @ 2019-06-29 12:03  Coco.Li  阅读(1965)  评论(3编辑  收藏  举报