Appearance
xtemplate 高级语法
以下语法虽然不常用,但对优化模板代码有莫大帮助。
set() 设置变量
有时判断逻辑特别复杂,为了让代码更利于阅读,好的版本是提取设置变量。
比如:
{{#if(x===1&&y===2)}}
{{#set(z=3)}}
{{/if}}
{{#if(z===3)}}
等价于 x===1&&y===2
{{/if}}
macro() 宏的定义
有时我们模板中会多次出现一个结构,比如一个表单,每个input下面有个消息容器:
<div class="auth-msg">该字段必填</div>
多处定义不利于维护,我们希望提取这个div,如何处理呢?
借助xtemplate的宏就可以实现:
{{#macro("msg","text")}}
<div class="auth-msg">{{msg}}</div>
{{/macro}}
<input type="text" name="name" value="">
{{macro("msg","名字不可以为空")}}
留意macro命令比较特殊,第一个参数定义宏的名称,这里我们命名为msg,调用时就是 {{macro("msg")}} 。后面的参数都是自定义的传参。
include() 引用子模板
x.xtpl 与 y.xtpl 同级目录,y.xtpl 引用子模板x.tpl:
{{{include("x")}}}
留意是{{{}}}。