用法:

  • Variable Tags

    1. {{name}} 用来渲染值name

       datas: 
      
       let data = ["value": "test"]
      
       -----------
      template: {{value}} a lession -----------
      rendering: test a lession
  • Section Tags

    1. {{#items}}...{{/items}} 执行条件语句,枚举出里面的对象

      • 按需渲染数据
      • 遍历数据
      • 获取里面的每一项

      如果{{value}}...{{/value}}中的value错误的(下面的),那么将不会被渲染:

      1. 缺少值

      2. false

      3. 0

      4. 字符串

      5. 空集合

      6. 为NSNull

      如果value 是集合的话

       datas:
      [
      "friends": [
      [ "name": "Hulk Hogan" ],
      [ "name": "Albert Einstein" ],
      [ "name": "Tom Selleck" ],
      ]
      ] ------------- template:
      {{# friends }}
      - {{ name }}
      {{/ friends }} -------------
      rendering: - Hulk Hogan
      - Albert Einstein
      - Tom Selleck

      上面所说的集合可以是Arrays,ranges, sets, NSArray, NSSet等

      其他值既不是falsey, 也不是collection,那么这个块就会被渲染一次:

       datas:
      [
      "user": [
      "name": "Mario"
      "score": 1500
      ]
      ] -------------
      template:
      {{# user }}
      - {{ name }}
      - {{ score }}
      {{/ user }} --------------
      rendering:
      - Mario
      - 1500
    2. {{^items}}...{{/items}} 对应于上方的对立面

       data:
      [
      "persons": []
      ] --------------
      template:
      {{# persons }}
      - {{name}} is {{#alive}}alive{{/alive}}{{^alive}}dead{{/alive}}.
      {{/ persons }}
      {{^ persons }}
      Nobody
      {{/ persons }} -------------
      rendering:
      Nobody --------------
      data:
      [
      "persons": [
      ["name": "Errol Flynn", "alive": false],
      ["name": "Sacha Baron Cohen", "alive": true]
      ]
      ]
      ---------------
      rendering:
      - Errol Flynn is dead.
      - Sacha Baron Cohen is alive.
  • Partial Tags

    1. {{>partial}} , 嵌入其他模块

       douc.mustanche
      Guests:
      {{# guests }}
      {{> person }}
      {{/ guests }} --------------
      person.mustache
      {{ name }} -------------
      data:
      [
      "guests": [
      ["name": "Frank Zappa"],
      ["name": "Lionel Richie"]
      ]
      ] --------------
      rendering:
      Guests:
      - Frank Zappa
      - Lionel Richie
  • Partial Override Tags

    1. {{<layout}}...{{/layout}} , 模板继承

       layout.mustache // title , 和content 可以被覆盖
      <html>
      <head>
      <title>{{$ title }}Default title{{/ title }}</title>
      </head>
      <body>
      <h1>{{$ title }}Default title{{/ title }}</h1>
      {{$ content }}
      Default content
      {{/ content }}}
      </body>
      </html> ---------------
      article.mustuche: {{< layout }} {{$ title }}{{ article.title }}{{/ title }} {{$ content }}
      {{{ article.html_body }}}
      <p>by {{ article.author }}</p>
      {{/ content }} {{/ layout }} ---------------
      data: [
      "article": [
      "title": "The 10 most amazing handlebars",
      "html_body": "<p>...</p>",
      "author": "John Doe"
      ]
      ] ----------------
      rendering: <html>
      <head>
      <title>The 10 most amazing handlebars</title>
      </head>
      <body>
      <h1>The 10 most amazing handlebars</h1>
      <p>...</p>
      <p>by John Doe</p>
      </body>
      </html>

      {{$ title }}...{{/ title }}每次都会被渲染,并且只被渲染一次, no boolean checks, no collection iteration.

      一个模板可以包含很多partial override tags

      避免循环

  • Set Delimiters Tags

    1. {{=<% %>=}}, 让你改变标签分隔符。
  • Comment Tags

    1. {{! Wow. Such comment. }} , 注释
  • paragma Tags

      {{% CONTENT_TYPE:TEXT }}
    {{% CONTENT_TYPE:HTML }}

参考:GRMustache.swift

swift 之 mustache模板引擎的更多相关文章

  1. JS模板引擎-Mustache模板引擎使用实例1-表格树

    1 使用实例代码 1.jsp代码 <!DOCTYPE html> <html lang="zh-CN"> <head> <title> ...

  2. Mustache模板引擎

    Mustache是一个Logic-Less模板引擎,即:零逻辑引擎,原因在于它只有标签,没有流程控制语句,这是它与其它模板引擎不同的地方. Mustache小巧玲珑,几乎用各种语言都实现了一遍. Mu ...

  3. nodejs+Express中使用mustache模板引擎

    由于公司一个seo项目,需要我协助.此项目他人已经开发大半,由于seo需要,使用了服务器端模板引擎.我项目的后端同事说项目是go语音写的,跑项目麻烦,只给了我template和css等静态文件. 为了 ...

  4. 前端数据渲染及mustache模板引擎的简单实现

    早期数据渲染的几种方式 在模板引擎没有诞生之前,为了用JS把数据渲染到页面上,诞生了一系列数据渲染的方式. 最最基础的,莫过于直接使用DOM接口创建所有节点. <div id="roo ...

  5. js模板引擎mustache介绍及实例

    在Javascript中 mustache.js是实现mustache模板系统. Mustache是一种没有逻辑的模板语法.它可以应用于HTML.配置文件.源代码等任何地方. 它通过使用散列或对象中提 ...

  6. 【转】在Express项目中使用Handlebars模板引擎

    原文:http://fraserxu.me/2013/09/12/Using-Handlebarsjs-with-Expressjs/ 最近在用Expressjs做一个项目,前后端都用它来完成.自己之 ...

  7. Handlebars的基本用法 Handlebars.js使用介绍 http://handlebarsjs.com/ Handlebars.js 模板引擎 javascript/jquery模板引擎——Handlebars初体验 handlebars.js 入门(1) 作为一名前端的你,必须掌握的模板引擎:Handlebars 前端数据模板handlebars与jquery整

    Handlebars的基本用法 使用Handlebars,你可以轻松创建语义化模板,Mustache模板和Handlebars是兼容的,所以你可以将Mustache导入Handlebars以使用 Ha ...

  8. Javascript模板引擎mustache.js详解

    mustache.js是一个简单强大的Javascript模板引擎,使用它可以简化在js代码中的html编写,压缩后只有9KB,非常值得在项目中使用.本文总结它的使用方法和一些使用心得,内容不算很高深 ...

  9. Mustache.js前端模板引擎源码解读

    mustache是一个很轻的前端模板引擎,因为之前接手的项目用了这个模板引擎,自己就也继续用了一会觉得还不错,最近项目相对没那么忙,于是就抽了点时间看了一下这个的源码.源码很少,也就只有六百多行,所以 ...

随机推荐

  1. 02函数-04-箭头函数(ES6)

    ES6新增的函数:Arrow Function,定义方式就是一个箭头 箭头函数相当于匿名函数,并且简化了函数定义,和匿名函数最大的区别在于其内部的this不再"乱跑",而是由上下文 ...

  2. jmeter通过BeanShell 脚本,实现对http请求参数的加密

    jmeter一直是一款很好的接口和性能测试工具,它是开源的,不需要为此支付任何费用,而且可以下载源码,可以在修改源代码并在此基础上拓展自己的功能或插件,它可以跟ant和jenkins结合起来搭建自己的 ...

  3. MyBatis学习(四)XML配置文件之SQL映射的XML文件

    SQL映射文件常用的元素: 1.select 查询语句是MyBatis最常用的语句之一. 执行简单查询的select元素是非常简单的: <select id="selectUser&q ...

  4. String类的源码分析

    之前面试的时候被问到有没有看过String类的源码,楼主当时就慌了,回来赶紧补一课. 1.构造器(构造方法) String类提供了很多不同的构造器,分别对应了不同的字符串初始化方法,此处从源码中摘录如 ...

  5. 一个JavaScript触发器插件,可通过指定频次、指定时间内触发指定的处理函数

    js-trigger是一个JavaScript触发器插件,可通过指定频次.指定时间内触发指定的处理函数 Tango<tanwei_yx@126.com> 特性 支持AMD/CMD/Comm ...

  6. Sublime Text 3 全程详细图文原创教程

    Sublime Text 3 全程详细图文原创教程(持续更新中...) 一. 前言 使用Sublime Text 也有几个年头了,版本也从2升级到3了,但犹如寒天饮冰水,冷暖尽自知.最初也是不知道从何 ...

  7. Bootstrap对齐方式

    <p class="text-left">我居左</p> <p class="text-center">我居中</p& ...

  8. 乐橙谷浅析JAVA程序员就业前景

    不知道大家对Java就业前景了解多少.随着信息化的发展,IT培训受倒了越来越多人的追捧.在开发领域,JAVA培训成为了许多人的首选!JAVA应用广泛,JAVA培训就业前景良好!目前,虽然JAVA人才的 ...

  9. PLT文件 和 DXF文件

    PLT: CAM/CAD类似软件处理的图像文件的文件格式 DXF: AutoCAD(Drawing Interchange Format或者Drawing Exchange Format) 绘图交换文 ...

  10. 【运维】CPU负载

    最近对我的本本(4核8线程)用top命令看系统状况出现了CPU利用率超过200%的情况,非常诧异,查了下相关资料,把这个问题弄清楚了.首先来分析下CPU Load load average: 0.09 ...