博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mustache语法
阅读量:4668 次
发布时间:2019-06-09

本文共 1941 字,大约阅读时间需要 6 分钟。

mustache 模板,用于构造html页面内容。在实际工作中,当同一个模板中想要调用不同的函数来渲染画面,在已经自定义好了的前提下,可以在渲染页面时对传入的参数进行手动判断。【在不好判断的情况下,我们可以通过改变传入参数来进行判断】跟小白我来看看该模板的语法吧。
 

Mustache 的模板语法很简单,就那么几个:

1
2
3
4
5
6
7
{
{data}}
{
{#data}} {
{/data}}
{
{^data}} {
{/data}}
{
{.}}
{
{<partials}}
{
{
{data}}}
{
{!comments}}

借助 Demo 来对语法做简单的介绍:

1 ... 2  3 19 ...

{
{data}}

{

{}}就是 Mustache 的标示符,花括号里的 data 表示键名,这句的作用是直接输出与键名匹配的键值,例如:

1 var tpl = '{
{name}}';2 var html = Mustache.render(tpl, data);3 //输出:4 xiaohua

{
{#data}} {
{/data}}

#开始、以/结束表示区块,它会根据当前上下文中的键值来对区块进行一次或多次渲染,例如改写下 Demo 中的 tpl:

1 var tpl = '{
{#msg}}

{

{sex}},{
{age}},{
{hobit}}

{
{/msg}}';2 var html = Mustache.render(tpl, data);3 4 //输出:5

female, 22, reading

注意:如果{

{#data}} {
{/data}}
中的 data 值为 null, undefined, false;则不渲染输出任何内容。

{
{^data}} {
{/data}}

该语法与{

{#data}} {
{/data}}
类似,不同在于它是当 data值为 null, undefined, false 时才渲染输出该区块内容。

1 var tpl = {
{^nothing}}没找到 nothing 键名就会渲染这段{
{/nothing}};2 var html = Mustache.render(tpl, data);3 //输出:4 没找到 nothing 键名就会渲染这段

{
{.}}

{

{.}}表示枚举,可以循环输出整个数组,例如:

1 var tpl = '{
{#subject}}

{

{.}}

{
{/subject}}';2 var html = Mustache.render(tpl, data);3 //输出:4

Ch

En

Math

physics

{
{>partials}}

>开始表示子模块,如{

{> msg}};当结构比较复杂时,我们可以使用该语法将复杂的结构拆分成几个小的子模块,例如:

1 var tpl = "

{
{namme}}

    {
    {>msg}}
" 2 var partials = {msg: "{
{#msg}}
  • {
    {sex}}
  • {
    {age}}
  • {
    {hobit}}
  • {
    {/msg} 3 var html = Mustache.render(tpl, data, partials); 4 //输出: 5

    xiaohua

    6
      7
    • female
    • 8
    • 22
    • 9
    • reading
    • 10

    {
    {
    {data}}}

    {

    {data}}输出会将等特殊字符转译,如果想保持内容原样输出可以使用{
    {
    {}}}
    ,例如:

    1 var tpl = '{
    {#msg}}

    {

    {
    {age}}}

    {
    {/msg}}'2 //输出:3

    22

    {
    {!comments}}

    !表示注释,注释后不会渲染输出任何内容。

    1 {
    {!这里是注释}}2 //输出:

     

    在工作中,如果页面上的内容是从后台获取数据并渲染到页面上时,我们就可以使用mustache模板了,值得注意的是,render的数据一定要与键名相符合。

    1
    <br><br><br><br>

    转载于:https://www.cnblogs.com/zyl123/p/8026614.html

    你可能感兴趣的文章
    浅析Hibernate映射(五)——集合映射
    查看>>
    java.lang.ClassNotFoundException: com.sun.xml.ws.spi.ProviderImpl解决办法
    查看>>
    检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)。 - CatcherX...
    查看>>
    Bitmap处理
    查看>>
    C语言记录汇总
    查看>>
    webservices系列(三)——调用线上webservice(天气预报和号码查询)
    查看>>
    callback 模式
    查看>>
    什么是servlet
    查看>>
    Something about TFS
    查看>>
    用haslib给字符加密
    查看>>
    mysql limit分页查询效率
    查看>>
    adb shell 命令之----pm
    查看>>
    Git常用命令
    查看>>
    c#利用zlib.net对文件进行deflate流压缩(和java程序压缩生成一样)
    查看>>
    SQL Server中Text和varchar(max)数据类型区别
    查看>>
    Markdown的基本语法
    查看>>
    lintcode-87-删除二叉查找树的节点
    查看>>
    Creating a blocking Queue<T> in .NET
    查看>>
    621. Task Scheduler
    查看>>
    IIS支持flv文件
    查看>>