我尝试按照here所述使用ember预编译器。我只是想在我的开发过程中进行预编译,并将所有内容部署到没有node.js服务器的生产环境中。
当我为所有已编译的模板包含生成的js文件时,我在控制台中收到这些错误:SyntaxError: missing declaration after 'export' keyword
这是我的fu.js文件的一个例子,由fu.hbs编译。
export default Ember.HTMLBars.template((function() {
return {
meta: {
"revision": "Ember@1.13.3",
"loc": {
"source": null,
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 10
}
}
},
arity: 0,
cachedFragment: null,
hasRendered: false,
buildFragment: function buildFragment(dom) {
var el0 = dom.createDocumentFragment();
var el1 = dom.createTextNode("Hello Fufu");
dom.appendChild(el0, el1);
return el0;
},
buildRenderNodes: function buildRenderNodes() { return []; },
statements: [
],
locals: [],
templates: []
};
}()));

我的hbs不应该有标识符吗?喜欢" fu.hbs",如何将预编译模板添加到我的ember应用程序中?我只需要引用index.html中的js文件,并使用与模板相同的名称吗?
如果一切正常,我还需要将以下内容放入index.html吗?
<script type="text/x-handlebars" data-template-name="fu" id="fu">
Hello Fufu
</script>
&#13;
答案 0 :(得分:0)
我现在找到了解决方案,没有文档...
在预编译模板后,我必须将每个模板添加到Ember.TEMPLATES[]
数组,因此代码现在看起来像:
Ember.TEMPLATES["fu"] = Ember.HTMLBars.template((function() {
return {
meta: {
"revision": "Ember@1.13.3",
"loc": {
"source": null,
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 10
}
}
},
arity: 0,
cachedFragment: null,
hasRendered: false,
buildFragment: function buildFragment(dom) {
var el0 = dom.createDocumentFragment();
var el1 = dom.createTextNode("Hello Fufu");
dom.appendChild(el0, el1);
return el0;
},
buildRenderNodes: function buildRenderNodes() { return []; },
statements: [
],
locals: [],
templates: []
};
}()));
可以删除<script type="text/x-handlebars" data-template-name="fu" id="fu">
- 索引中的元素 - 文件。