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中的错误还是我错过了什么?它似乎应该工作。
答案 0 :(得分:1)
您使用的是使用新Handlebars兼容模板引擎HTMLBars的Ember版本。为了确保您的模板使用这种新语法进行编译,您需要将isHTMLBars: true
选项添加到gulp-ember-templates
的Gulp任务中,可以找到更多格式in the README。