【问题标题】:"template.buildRenderNodes is not a function" on latest Ember release最新 Ember 版本中的“template.buildRenderNodes 不是函数”
【发布时间】:2015-08-16 14:52:21
【问题描述】:

HTML 和 JS(非缩小版)

index.html

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
    </head>

    <body>
        <!-- <ember> -->
        <script type="text/javascript" src="assets/lib/jquery/jquery.min.js"></script>
        <script type="text/javascript" src="assets/lib/ember.js/ember.min.js"></script>
        <!-- </ember> -->

        <!-- <app> -->
        <script type="text/javascript" src="assets/js/templates.min.js"></script>
        <script type="text/javascript" src="assets/js/app.min.js"></script>
        <!-- </app> -->
    </body>
</html>

app.min.js

window.App = Ember.Application.create();

templates.min.js(模板使用gulp-ember-templates编译)

Ember.TEMPLATES["index"] = Ember.Handlebars.template({"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
  return "";
},"useData":true});

说明

在浏览器中打开页面时,出现如下错误:

Uncaught TypeError: template.buildRenderNodes is not a function

我正在使用 Ember 和 jQuery 的最新版本。在搜索此错误时,我发现有人在升级到 Ember 1.13 时遇到此问题,但我使用的是 Ember 2.0.0 并且没有故意调用任何不推荐使用的方法,实际上我只使用我生成的模板(它们是空的,因为我还没有放入任何内容;见上文)和Ember.Application.create()

我还发现 Ember 在包含 ember-template-compiler.js 并在 HTML 中保持未编译的模板时有效(使用 Handlebars-script-tags)。

问题

这是 Ember 中的错误还是我遗漏了什么?似乎它应该工作。

【问题讨论】:

    标签: templates ember.js handlebars.js


    【解决方案1】:

    您使用的 Ember 版本正在使用新的 Handlebars 兼容模板引擎 HTMLBars。为了确保您的模板使用这种新语法进行编译,您需要将isHTMLBars: true 选项添加到gulp-ember-templates 的Gulp 任务中,可以在in the README 找到更多格式。

    【讨论】:

    • 谢谢,您的回答是对的,但失败的不是isHTMLBars,而是compiler 选项。也很奇怪ember-template-compiler的npm模块和bower那个不一样。
    猜你喜欢
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 2019-08-29
    • 2013-01-25
    • 1970-01-01
    相关资源
    最近更新 更多