Template Engine-06-模板引擎 Handlebars 入门介绍

拓展阅读

java 表达式引擎

logstash 日志加工处理-08-表达式执行引擎 AviatorScript+MVEL+OGNL+SpEL+JEXL+JUEL+Janino

QLExpress 阿里表达式引擎系统学习

什么是 Handlebars?

Handlebars 是一种简单的模板语言。

它使用模板和输入对象生成 HTML 或其他文本格式。Handlebars 模板看起来像带有嵌入的 Handlebars 表达式的常规文本。

模板

{% raw %}

{{firstname}} {{lastname}}

{% endraw %}

Handlebars 表达式是 {% raw %}{{,一些内容,后跟一个 }}{% endraw %}。

当执行模板时,这些表达式将被输入对象中的值替换。

了解更多:表达式

安装

测试 Handlebars 的最快方法是从 CDN 加载它并嵌入到 HTML 文件中。

{% raw %}
<!--CDN 包含 Handlebars -->
<script src="https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js"></script>
<script>
  // 编译模板
  var template = Handlebars.compile("Handlebars {{doesWhat}}");
  // 执行已编译的模板并将输出打印到控制台
  console.log(template({ doesWhat: "rocks!" }));
</script>
{% endraw %}

警告

这种方法适用于小型页面和测试。当面向真实的生产系统时,有几种其他使用 Handlebars 的方法。

了解更多:安装

语言特性

简单表达式

如前所示,以下模板定义了两个 Handlebars 表达式

模板

{% raw %}

{{firstname}} {{lastname}}

{% endraw %}

如果应用于输入对象

输入

{
  firstname: "Yehuda",
  lastname: "Katz",
}

则表达式将被相应属性替换。结果如下

输出

{% raw %}

Yehuda Katz

{% endraw %}

嵌套输入对象

有时,输入对象包含其他对象或数组。例如:

输入

{
  person: {
    firstname: "Yehuda",
    lastname: "Katz",
  },
}

在这种情况下,您可以使用点符号来访问嵌套属性

模板

{% raw %}{{person.firstname}} {{person.lastname}}{% endraw %}

了解更多:表达式

一些内置助手允许您将当前上下文更改为嵌套对象。然后,您可以像访问根对象一样访问此对象

评估上下文

内置的块助手 each 和 with 允许您更改当前评估上下文。

with 助手深入到对象属性中,使您可以访问其属性

模板

{% raw %}
{{#with person}}
{{firstname}} {{lastname}}
{{/with}}
{% endraw %}

输入

{
  person: {
    firstname: "Yehuda",
    lastname: "Katz",
  },
}

each 助手遍历数组,允许您通过简单的 Handlebars 表达式访问每个对象的属性。

模板

{% raw %}
    {{#each people}}
  • {{this}}
  • {{/each}}
{% endraw %}

输入

{
  people: [
    "Yehuda Katz",
    "Alan Johnson",
    "Charles Jolley",
  ],
}

了解更多:内置助手

模板注释

您可以在 Handlebars 代码中使用注释,就像在代码中一样。由于通常存在一定程度的逻辑,这是一种良好的实践。

注释不会出现在生成的输出中。如果希望注释显示出来,只需使用 HTML 注释,它们

Template Engine-06-模板引擎 Handlebars 入门介绍_第1张图片

你可能感兴趣的:(tools,测试用例,开发语言,java)