Crox 模板语法
运算符
Crox模板支持多种运算符:
!
%
&&
(
)
*
+
-
.
/
<
<=
=
>
>=
[
]
||
==
!=
(===、!== 不推荐使用)
表达式输出
-
{{root}}
// 输出 data -
{{root.name}}
// 输出 data.name -
{{root.value * 2}}
// 输出 2 倍的 data.value -
{{str.substring(1, 5)}}
// 函数、方法
if选择语句
-
{{#if root.ok}}
好,又赢了{{/if}}
-
{{#if root.length > 0}}
有{{else}}
没了{{/if}}
循环语句
each 循环数组
-
{{#each root val}}
{{val}}
{{/each}}
-
{{#each root val key}}
{{key}}
=>{{val}}
{{/each}}
forin 循环对象
-
{{#forin root val}}
{{val}}
{{/forin}}
-
{{#forin root val key}}
{{key}}
=>{{val}}
{{/forin}}
set赋值语句
重复使用的较长的表达式,可以赋值给一个变量,例如:
{{set a = data.lilei.mother.phone.brand}}
如果 data.lilei.mother.phone.brand
对应的数据下还有其他属性(例如:prop
),则可以通过 a
获取到:
prop属性的值为 {{a.prop}}
// 获取到 data.lilei.mother.phone.brand.prop的属性值
include子模板导入
{{include "path/to/file.tpl"}}
// 导入file.tpl
raw保留原始内容
{{#raw}}
和 {{/raw}}
之间的内容,Crox将直接输出,不进行翻译。例如:
{{root.a}} - {{root.b}}
{{#raw}}
<script>
console.log('output {{#if}}{{/if}}')
</script>
{{/raw}}
通过 crox -t php
翻译成php后:
<?php echo crox_encode($crox_root->a);?> - <?php echo crox_encode($crox_root->b);?>
<?php
<script>
console.log('output {{#if}}{{/if}}')
</script>
?>
其他
- Crox模板语法已被Kissy XTemplate模板(有限)兼容