【问题标题】:What source files should be included for Handlebars 4.0.2?Handlebars 4.0.2 应该包含哪些源文件?
【发布时间】:2015-09-16 23:47:00
【问题描述】:

我刚刚开始使用 Handlebars.js,我已经对 HTML 中应该包含的内容感到困惑。

我设置了一个最小的 helloworl HTML 文件,如下所示:

<html>
<body>
  <script id="entry-template" type="text/x-handlebars-template">
    <div class="entry">
      <h1>{{title}}</h1>
      <div class="body">
        {{body}}
      </div>
    </div>
  </script>

  <script src="bower_components/jquery/dist/jquery.js"></script>
  <script src="bower_components/handlebars/handlebars.js"></script>
  <script src="bower_components/handlebars/handlebars.runtime.js"></script>
  <script type="text/javascript">
  var source   = $("#entry-template").html();
  var template = Handlebars.compile(source);
  var context = {title: "My New Post", body: "This is my first post!"};
  var html    = template(context);
  document.write(html);
  </script>
</body>
</html>

我收到以下错误:

[Error] TypeError: undefined is not a function (evaluating 'Handlebars.compile(source)')
global code (index.html, line 17)

为了让这个最小的示例正常工作,还应该包含哪些其他依赖项?

使用的版本:

  • jQuery 2.1.4
  • 车把 4.0.2

【问题讨论】:

    标签: javascript handlebars.js


    【解决方案1】:
    1. 您对bower_components/handlebars/handlebars.runtime.js 的调用会覆盖bower_components/handlebars/handlebars.js 设置的内容。

    2. 使用handlebars.runtime.js 意味着您的模板已经编译,因此您获得的Handlebars 对象不包含compile 函数。

    删除&lt;script src="bower_components/handlebars/handlebars.runtime.js"&gt;&lt;/script&gt;你应该很高兴:http://jsfiddle.net/nikoshr/dr3gwh7u/

    <script src="bower_components/jquery/dist/jquery.js"></script>
    <script src="bower_components/handlebars/handlebars.js"></script>
    
    <script type="text/javascript">
        var source   = $("#entry-template").html();
        var template = Handlebars.compile(source);
        var context = {title: "My New Post", body: "This is my first post!"};
        var html    = template(context);
        $('body').append(html)
    </script>
    

    【讨论】:

    • 哇。其实很简单。 Handlebar 的安装说明超级不清楚:“handlebars.js 和 handlebars.runtime.js 是主要的源文件,但这个组件中还有许多其他选项。” (所以我认为两者都是必需的)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 2019-03-17
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多