Skip to content
aui edited this page May 31, 2013 · 13 revisions

表达式

{{}} 符号包裹起来的语句则为模板的逻辑表达式。

输出表达式

对内容编码输出:

{{content}}

编码可以防止数据中含有 HTML 字符串,避免引起 XSS 攻击。

不编码输出:

{{echo content}}

条件表达式

{{if admin}}
	{{content}}
{{/if}}

{{if user === 'admin'}}
	{{content}}
{{else if user === '007'}}
	<strong>hello world</strong>
{{/if}}

遍历表达式

无论数组或者对象都可以用 each 进行遍历。

{{each list}}
	<li>{{$index}}. {{$value.user}}</li>
{{/each}}

其中 list 为要遍历的数据名称, $value$index 是系统变量, $value 表示数据单条内容, $index 表示索引值,这两个变量也可以自定义:

{{each list as value index}}
	<li>{{index}}. {{value.user}}</li>
{{/each}}

模板包含表达式

用于嵌入子模板。

{{include './demo'}}

还可以传入指定的数据到字模板:

{{include './demo' data}}

为了让编译工具能够进行静态分析,需要如下约定:

  1. 路径无需带后缀名
  2. 路径不能够进行字符串运算
  3. 路径不能使用变量

以下三种写法都是错误的:

  1. {{include './index.html'}}路径不能带后缀名
  2. {{include '.' + '/idnex'}}路径不能够进行字符串运算
  3. {{include value}}路径不能使用变量

语法定义文件在 ./lib/template-syntax.js 中,可自行修改

Clone this wiki locally