微信小程序组件 wxParse 中的模版 template 使用 既然不能循环那就使用笨办法

阅读 1372
收藏 30
2016-10-25
原文链接:weappdev.com

本项目由微信小程序开发论坛-WeAppDev weappdev.com/ 会员编写

前言

黑猫白猫抓住老鼠就是好猫,本文主要探讨一下在开发微信小程序富文本解析wxParse Alpha0.1-支持HTML及markdown解析过程中想要循环使用template的思路,却无法实现,后来使用笨办法的历程 ,希望这个过程在你的开发中给你带来一点小灵感

与本文相关

可能是第一个微信小程序富文本解析组件
github地址:github.com/icindy/wxPa…

搭配下面代码后再看文章更佳!!!wxParse的模版文件

模板

WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用。

介绍及使用方法:微信小程序官方文档-模版

模版(template)你不陌生吧?

  • angularjs中的模版文件 - ng-template
  • RN中的模版文件使用
  • 甚至是移动开发中VM的概念也应该会联想到模版概念

看看微信的模版官方用法

详细 微信小程序官方文档-模版

is 属性可以使用 Mustache 语法,来动态决定具体需要渲染哪个模板:

不过在微信小程序开发中,能使用的很少,且有自己的规则,大概的条件语句都差不多,可以自己尝试一下



 
  

模版的引入

详细讲解官方文档 微信小程序官方文档-模版引入

import 有作用域的概念,即只会 import 目标文件中定义的 template,而不会 import 目标文件 import 的 template。

如:C import B,B import A,在C中可以使用B定义的template,在B中可以使用A定义的template,但是C不能使用A定义的template










  

循环使用测试

我们拿上面的例子来看多做几个, 小技巧:一个模版文件可以写多个模版,只要名字不同即可

在写wxParse的时候,我希望能够通过一个模版来自我循环调用实现,但是因为作用域的问题,不能够进行调用,所以我希望能够呈现三角调用,做下面的例子看看





A template
B template
C template
A template
B template
C template
.../循环
A template
B template
C template

结论就是,其无法进行循环调用,不仅是传值问题,文档中也有提到。

困难1:无法循环使用模版下,如何处理多级HTML嵌套解析

回答: 既然不能够实现完美的代码较少的方式,那我们就采用一种笨办法,手动循环出N个模版,因为在时机场景中,尤其是在文章的html中不会出现超过10级的嵌套,那么这样我们可以手动写10个模版,进行循环调用。

我们使用下面的代码进行不断的重复,只需要修改template对应指向下一个模版,并不断累加到10个以上,基本上能够解决大部分的html解析问题。

** 所以,如果你的HTML嵌套级别较高的话,只要按照这个步骤再进行复制模版就可以了。

致敬

这是开发中想到的一种笨办法,如果你有好的意见,或更好的解决方案,请告知我

欢迎star或pull相关github.com/icindy/wxPa…

利益相关

本项目由微信小程序开发论坛-WeAppDev weappdev.com/ 会员开发
如需转载请联系论坛管理员

评论
    下载掘金客户端一个帮助开发者成长的社区
    相关文章
    下载掘金客户端一个帮助开发者成长的社区