Test
ok
如果条件"condition"为真,则渲染出p属性,反之不渲染
另外的条件分支指令t-elif和t-else使用如下:
Happy birthday!
Welcome master!
Welcome!
QWeb有一个迭代指令foreach,它接受一个返回要迭代的集合的表达式,第二个参数t-as提供迭代的“当前项”的名称
结果:
1
2
3
QWeb可以动态地计算属性,并在输出节点上设置计算结果。
这是通过t-att(属性)指令完成的,它以3种不同的形式存在:
创建一个名为$name的属性,计算属性值,并将结果设置为属性值
呈现如下
与前面相同,但参数是一个格式字符串而不仅仅是一个表达式,通常用于混合文字和非文字字符串(例如classes)
-
呈现如下
- 1
- 2
- 3
如果参数是一个映射,则每个(键、值)对都会生成一个新的属性及其值
呈现如下
如果参数是一对(包含2个元素的元组或数组),则对的第一项是属性的名称,第二项是值
呈现如下
QWeb允许从模板中创建变量,以记忆计算(多次使用),为数据块提供更清晰的名称
这是通过set指令完成的,该指令接受要创建的变量的名称。可以通过两种方式提供要设置的值
3
- ok
- ok
QWeb模板可用于顶级呈现,但也可以使用t-call指令从另一个模板中使用它们(以避免重复或为模板的部分命名)
t-js 节点的主体是在模板渲染期间执行的javascript代码。 带有一个上下文参数,该名称是渲染上下文在t-js主体中可用的名称
console.log("Foo is", ctx.foo);
和t-esc一样,也是输出值。但t-esc 过滤安全值,像html元素;t-raw是数据库中的原始数据。
还有一种用法,可直接在xml页面中的js直接赋值给变量,进行使用
var PieData =
pie_data是后台传递的参数