You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Handlebars无法正常工作,请求入门指导及代码排查帮助

帮你排查Handlebars代码无法运行的问题

嘿,刚上手Handlebars踩坑太正常了,我帮你梳理下代码里的几个关键问题,咱们一步步修正:

先看你代码里的核心错误

  • 模板内容放错位置:你把Handlebars的模板变量({{title}}、{{body}})放在了<script id="contact-template">标签外面,这会导致Handlebars根本找不到模板内容,浏览器直接把这些变量当成普通文本显示了。
  • 获取模板源的方式错误:你用let source = $('#contact-template')拿到的是jQuery对象,而Handlebars.compile()需要的是模板的文本内容,得用.html()方法提取。
  • 缺少数据传递与页面渲染步骤:你编译了模板,但没传入要渲染的数据,也没把渲染后的结果插入到页面中。
  • 可能遗漏了依赖库:如果页面没引入jQuery和Handlebars的库文件,代码也会跑不起来。

修正后的完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Handlebars Demo</title>
    <!-- 先引入依赖库 -->
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/handlebars@4.7.7/dist/handlebars.min.js"></script>
</head>
<body>
    <div id="container"></div>

    <!-- 模板内容必须放在这个script标签内部 -->
    <script id="contact-template" type="text/x-handlebars-template">
        <div class="entry">
            <h1>I'm {{title}}</h1>
            <div class="body">{{body}}</div>
        </div>
    </script>

    <script>
        (async function () {
            // 提取模板的纯文本内容
            let source = $('#contact-template').html();
            // 编译模板生成渲染函数
            let template = Handlebars.compile(source);
            // 定义要渲染的动态数据
            let data = {
                title: "Handlebars新手",
                body: "终于把模板跑起来啦!"
            };
            // 用数据渲染模板,得到最终HTML字符串
            let html = template(data);
            // 把渲染后的内容插入到页面容器中
            $('#container').html(html);
        })();
    </script>
</body>
</html>

每个修正点的解释

  1. 依赖库引入:在head里先引入jQuery和Handlebars的库,确保代码执行时这些工具已经加载完成。
  2. 模板位置修正:把所有带Handlebars变量的HTML结构放到type="text/x-handlebars-template"的script标签内部,这样浏览器不会直接解析它,只会当作模板文本保存。
  3. 正确获取模板源:用$('#contact-template').html()拿到模板的纯文本内容,传给Handlebars.compile()生成渲染函数。
  4. 数据传递与渲染:定义包含title和body的数据源,调用编译好的模板函数生成最终HTML,最后把HTML插入到页面的容器(比如#container)中。

这样修改后,你的Handlebars模板就能正常渲染出动态内容啦!

内容的提问来源于stack exchange,提问作者Anelia Kostadinova

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:48:50