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>
?>

其他