Template7表达式之js表达式 、js_compare表达式

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)模板样例

<h3>{{title}}</h3>
<p>Price: ${{js "this.price * 1.2"}} </p>
<p>{{js "this.inStock ? 'In Stock' : 'Not in stock'"}} </p>

(3)输出结果

<h3>iPhone 6 Plus</h3>
<p>Price: $1200</p>
<p>In stock</p>

二、{{#js_compare "expression"}}...{{/js_compare}

这个表达式允许我们对上下文变量进行简单地比较。如果比较结果是“false”(或 "undefined" 或 "null" 或 "" 或 "0"),否会显示 {{else}} 分支内容。

1,单个条件比较

(1)假设上下文数据

{
  a: 5,
  b: 34
}
(2)模板样例

<p>{{#js_compare "a === b"}}A equals to B{{else}}A not equal to B{{/js_compare}} </p>

(3)输出结果

<p>A not equal to B</p>

2,多个条件比较

(1)假设上下文数据

{
  title: 'iPhone 6 Plus',
  price: 1000,
  color: 'white',
  memory: 32
}

(2)模板样例

<h3>{{title}}</h3>
<p>Price: ${{price}} </p>
<p>{{#js_compare "color === 'white' && memory > 16"}}Not in stock{{else}}In stock{{/js_compare}} </p>

(3)输出结果

<h3>iPhone 6 Plus</h3>
<p>Price: $1000</p>
<p>Not in stock</p>

时间: 2024-08-02 03:36:22

Template7表达式之js表达式 、js_compare表达式的相关文章

el表达式取js变量获取不到

问题描述 el表达式取js变量获取不到 var selected = "${requestScope.list[i].supplierid}"; var j = ${fn:length(list)}; for(var i=0;i<j;i++){ alert(selected); } ${requestScope.list[i].supplierid} 用js变量i循环取不到值 解决方案 var selected = "${requestScope.list[i].sup

JS 有名函数表达式全面解析_javascript技巧

Example #1: Function expression identifier leaks into an enclosing scope 实例1:函数表达式标示符渗进了外围作用域 var f = function g(){}; typeof g; // "function" Remember how I mentioned that an identifier of named function expression is not available in an enclosi

算法题:逆波兰表达式(数学逆波兰表达式和交并集逆波兰表达式)

一.前言 在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,所以,这种表示 法也称为中缀表示.每一运算符都置于其运算对象之后,称为后缀表达式,后缀表达式又叫做逆波兰表达式. 它的优势在于只用两种简单操作,入栈和出栈就可以搞定任何普通表达式的运算.其运算方式如下:如果当前 字符为变量或者为数字,则压栈,如果是运算符,则将栈顶两个元素弹出作相应运算,结果再入栈,最后当表 达式扫描完后,栈里的就是结果. 二.一般算法 将一个普通的中序表达式转换为逆波兰表达式 的一般算法是: (1)首先构

将数字转换成大写的人民币表达式的js函数_javascript技巧

将数字转换成大写的人民币,方法有很多,本例介绍的是使用js来完成的,看看下面的实现代码 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖&quo

将数字转换成大写的人民币表达式的js函数

  将数字转换成大写的人民币,方法有很多,本例介绍的是使用js来完成的,看看下面的实现代码 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖&q

[C# 3.0 入门] [第一章 Lambda表达式] 第二节:Lambda表达式带来了什么

本次的内容,主要是针对已经学习过C# 2.0的程序员读者的,前提是已经知道什么是匿名方法.如果还不清楚,请先阅读"连载:C# 2.0入门"(这篇会在今后翻译). 好的,现在进入正题. Lambda表达式(λ表达式),用一句话来解释,(不算很严谨)就是使匿名方法文字上更短的语法.虽然这样说,单"仅仅是文字上的变化,源代码的性质没有变"这样的想法也是一种误解.规模变化了,其性质也会变化.例如,实验室的烧杯中产生的现象,不一定会在大型的工厂里产生.同样的道理也适用于源代码

crob表达式-Quartz cron任务调度时间表达式怎么写

问题描述 Quartz cron任务调度时间表达式怎么写 每天上午10点18 和下午15点 23分,这个cron表达式怎么写,请会的帮忙看下. 解决方案 Spring 任务调度Quartz的cron表达式---------------------- 解决方案二: 没这么写过,你可以写两个:* 18 10 1/1 * * * 23 15 1/1 * * 或者让它执行4次 * 18,23 10,15 1/1 * *

js json el-js获取el表达式对象问题

问题描述 js获取el表达式对象问题 onclick="getData('${article}')" article 是一个对象 function(article){ alert(article); } 为什么alert出来不是一个对象? 解决方案 用服务器端json类库将${article}序列化为json字符串,注意转义单引号为'或者为实体&apos;,onclick改为下面的 onclick='getData(${article})' 解决方案二: 没转义....?...

JavaScript基础语法之js表达式_javascript技巧

本文将详细介绍javascript表达式,表达式分为原始表达式和复杂表达式.一般,关于javascript基础语法,人们听得比较多的术语是操作符和语句.但,其实还有一个术语经常使用,却很少被提到,这就是javascript表达式(expression). 原始表达式(primary exression) 原始表达式是表达式的最小单位--它不再包含其他表达式.javascript中的原始表达式包括this关键字.标识符引用.字面量引用.数组初始化.对象初始化和分组表达式 PrimaryExpres