Template7 提供了丰富的表达式语法(Expressions syntax)供我们使用,本文介绍其中的 {{js "expression"}}、{{#js_compare "expression"}}...{{/js_compare} 这2个表达式。
一、{{js "expression"}}
这个表达式允许我们执行一些简单的 JavaScript,从而直接在模板中修改/检查上下文数据,或者进行一些 JS 计算。
(1)假设上下文数据
{
title: 'iPhone 6 Plus',
price: 1000,
inStock: true
}
(2)模板样例
Price: ${{js "this.price * 1.2"}}
{{js "this.inStock ? 'In Stock' : 'Not in stock'"}}
(3)输出结果
Price: $1200
In stock
二、{{#js_compare "expression"}}...{{/js_compare}
这个表达式允许我们对上下文变量进行简单地比较。如果比较结果是“false”(或 "undefined" 或 "null" 或 "" 或 "0"),否会显示 {{else}} 分支内容。
1,单个条件比较
(1)假设上下文数据
{
a: 5,
b: 34
}
(2)模板样例
{{#js_compare "a === b"}}A equals to B{{else}}A not equal to B{{/js_compare}}
(3)输出结果
A not equal to B
2,多个条件比较
(1)假设上下文数据
{
title: 'iPhone 6 Plus',
price: 1000,
color: 'white',
memory: 32
}
(2)模板样例
Price: ${{price}}
{{#js_compare "color === 'white' && memory > 16"}}Not in stock{{else}}In stock{{/js_compare}}
(3)输出结果
Price: $1000
Not in stock