Handlebars初次了解

简介: Handlebars初次了解

3.jpg

特点


  1. 高效地构建语义化模板
  2. Handlebars 与 Mustache 模板基本兼容。
  3. Handlebars 会将模板编译为 JavaScript 函数, 执行速度快。


安装


  1. 通过CDN引入:

<script src="https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js"></script>


定义模板


简单的表达式

var template = Handlebars.compile(`
  <p>简单的表达式</p>
  <p>
    {{firstname}}-{{lastname}}
  </p>
`);
var output = template({
  firstname: "xiao",
  lastname: "xin"
})


嵌套输入对象

var template = Handlebars.compile(`
  <p>嵌套输入对象</p>
  <p>
    {{person.firstname}}-{{person.lastname}}
  </p>
`);
var output = template({
  person: {
    firstname: "tong",
    lastname: "xue"
  }
}) 


计算上下文

with

省略上下文

var template = Handlebars.compile(`
  <p>计算上下文</p>
  <p>
  {{#with person}}
    {{firstname}}-{{lastname}}
  {{/with}}
  </p>
`);
var output = template({
  person: {
    firstname: "tong",
    lastname: "xue"
  }
})


each

使用this代替上下文

var template = Handlebars.compile(`
  <p>计算上下文</p>
  <p>
  {{#each people}}
    <li>{{this}}</li>
  {{/each}}
  </p>
  <p>
  {{#each persons}}
    <li>{{this.name}}</li>
  {{/each}}
  </p>
`);
var output = template({
  persons: [
    { name: 'zhang' },
    { name: 'wang' }
  ],
  people: [
    "Yehuda Katz",
    "Alan Johnson",
    "Charles Jolley"
  ]
})


模板注释

<!-- 编译到结果中 This comment will show up as HTML-comment -->
{{! This comment will not show up in the output}}
{{!-- This comment may contain mustaches like }} --}}


自定义助手

// 相当于过滤器进行内容格式化
Handlebars.registerHelper('loud', function (aString) {
  return aString.toUpperCase()
})
// 获取到对象后可以做更多的处理
Handlebars.registerHelper('print_person', function () {
  return this.name
})


块助手代码

// 可定制性高
Handlebars.registerHelper("list", function (items, options) {
  const itemsAsHtml = items.map(item => "<li>" + options.fn(item) + "</li>");
  return "<ul>\n" + itemsAsHtml.join("\n") + "\n</ul>";
});


其他

  1. HTML 转义 使用{{{三成包裹}}}
  2. 更改上下文: ../ 获取父级



相关文章
|
数据采集 数据挖掘 UED
电商平台手机销售数据采集与分析
随着科技的进步,尤其是手机的普及,国民生活变得更加便捷。现今,手机销售已从传统的实体店模式转向电商平台,这一转变加剧了市场竞争,给手机厂商带来了新的挑战。为了应对挑战,电商平台越来越重视手机销售情况与用户体验,利用数据分析成为了解市场趋势的关键手段。本章节聚焦于某电商平台的手机销售及售后数据收集,通过深入分析商品销售状况与用户反馈,旨在探索有效的营销策略,助力电商平台与手机行业的共同进步。
408 1
|
9月前
|
JSON 数据可视化 API
Python 中调用 DeepSeek-R1 API的方法介绍,图文教程
本教程详细介绍了如何使用 Python 调用 DeepSeek 的 R1 大模型 API,适合编程新手。首先登录 DeepSeek 控制台获取 API Key,安装 Python 和 requests 库后,编写基础调用代码并运行。文末包含常见问题解答和更简单的可视化调用方法,建议收藏备用。 原文链接:[如何使用 Python 调用 DeepSeek-R1 API?](https://apifox.com/apiskills/how-to-call-the-deepseek-r1-api-using-python/)
|
6月前
|
人工智能 IDE 测试技术
CodeBuddy Craft 使用体验:提升开发效率的智能编程助手
CodeBuddyCraft是一款基于人工智能的编程辅助工具,旨在提升开发者的编码效率与代码质量。其主要功能包括智能代码补全、代码生成、错误检测与修复、文档自动生成和代码重构建议。安装过程简单,支持多种开发环境如VSCode、IntelliJ IDEA和Eclipse,并通过配置文件优化使用体验。核心功能如智能代码补全和代码生成显著提高了开发效率,而错误检测与修复功能则帮助开发者识别潜在问题。高级功能如代码重构助手和测试代码生成进一步提升了代码质量。性能测试显示,使用CodeBuddyCraft后开发效率显
826 1
|
6月前
|
运维 监控 数据可视化
斩获6.1 star,再见Crontab!这款开源定时任务管理系统让运维更高效
Gocron是一款基于Go语言的轻量级定时任务调度系统,替代传统Linux Crontab。它提供可视化Web界面管理,支持秒级调度、任务依赖配置与多节点执行。核心功能包括:1) 可视化管理;2) 精确调度规则;3) 全链路任务控制;4) 多类型任务支持;5) 完善监控通知。适用于自动化运维、系统监控、数据处理及业务自动化等场景。通过三步快速上手:一键部署、添加任务节点、创建定时任务。相比Crontab和Celery,Gocron更直观高效,适合个人与企业使用。项目地址:https://github.com/ouqiang/gocron。
951 8
|
消息中间件 Oracle 关系型数据库
实时计算 Flink版操作报错之连接外部kafka本地执行测试代码报错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
SQL 运维 druid
深度分析:Apache Doris及其在大数据处理中的应用
Apache Doris是一款开源的高性能实时分析数据库,设计用于低延迟SQL查询和实时数据处理,适合大规模实时分析场景。与Apache Druid、ClickHouse和Greenplum相比,Doris在易用性和实时性上有优势,但其他产品在特定领域如高吞吐、SQL支持或数据处理有特长。选型要考虑查询性能、实时性、SQL需求和运维成本。Doris适用于实时数据分析、BI报表、数据中台和物联网数据处理。使用时注意资源配置、数据模型设计、监控调优和导入策略。
|
存储 调度 Apache
airflow scheduler 这些命令是什么作用
【6月更文挑战第30天】airflow scheduler 这些命令是什么作用
182 0
|
Kubernetes 架构师 Java
史上最全对照表:大厂P6/P7/P8 职业技能 薪资水平 成长路线
40岁老架构师尼恩,专注于帮助读者提升技术能力和职业发展。其读者群中,多位成员成功获得知名互联网企业的面试机会。尼恩不仅提供系统化的面试准备指导,还特别针对谈薪酬环节给予专业建议,助力求职者在与HR谈判时更加自信。此外,尼恩还分享了阿里巴巴的职级体系,作为行业内广泛认可的标准,帮助读者更好地理解各职级的要求和发展路径。通过尼恩的技术圣经系列PDF,如《尼恩Java面试宝典》等,读者可以进一步提升自身技术实力,应对职场挑战。关注“技术自由圈”公众号,获取更多资源。
|
安全 Linux 网络安全
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
124291 0
|
固态存储
身份证,港澳通行证,台胞证,护照正则表达式
身份证,港澳通行证,台胞证,护照正则表达式
1982 0