Handlebars模板工作不正常

Handlebars template not working properly

本文关键字:不正常 工作 Handlebars      更新时间:2023-09-26

我正在express/node.js应用程序中测试Handlebars模板。我写了下面的模板。js文件,但它们无法正常工作。该页面显示无序列表的3个项目符号,但不包含数据。有人知道可能发生了什么吗?我的控制台&终端不会返回任何错误。

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.5/handlebars.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript" src="javascript/templating.js"></script> 
</head>
<h1>Hello World</h1>
<script id="handlebars-test" type="text/x-handlebars-template">
    <ul>
    <li>{{firstName}}</li>
    <li>{{twitter}}</li>
    <li>{{jobTitle}}</li>
    </ul>
</script>
<div id="main"></div>

$(document).ready(function() {
console.log('yo!!');
var source = $("#handlebars-test").html();
var template = Handlebars.compile(source);
var data = {
    twitter: 'fasdfasdf',
    jobTitle: 'loser',
    firstName: 'bye'
}
console.log(data);
$("#main").append(template(data));
});

嗨,您应该在最后调用脚本。此代码运行良好

   <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.5/handlebars.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <h1>Hello World</h1>
    <script id="handlebars-test" type="text/x-handlebars-template">
        <ul>
        <li>{{firstName}}</li>
        <li>{{twitter}}</li>
        <li>{{jobTitle}}</li>
        </ul>
    </script>
    <div id="main"></div>
    <script type="text/javascript">
      $(document).ready(function() {
            var source = $("#handlebars-test").html();
            var template = Handlebars.compile(source);
            var data = {
                twitter: 'fasdfasdf',
                jobTitle: 'loser',
                firstName: 'bye'
            }
            var theCompiledHtml = template(data);
            // Add the compiled html to the page
            $('#main').html(theCompiledHtml);
        });  
    </script>