首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ember.js: HtmlBars和Handlebars.compile命令

Ember.js: HtmlBars和Handlebars.compile命令
EN

Stack Overflow用户
提问于 2015-01-29 11:14:03
回答 3查看 6.7K关注 0票数 9

在运行我的应用程序时,我会得到以下错误:

代码语言:javascript
复制
Uncaught Error: Cannot call `compile` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `compile`.

它与这段代码相关:

代码语言:javascript
复制
var CarouselView = Ember.View.extend({
    template: Ember.Handlebars.compile('{{view view.itemsView}}'),
    elementId: 'carousel',
    contentBinding: 'content',
    ...

在ember.js github:https://github.com/emberjs/ember.js/issues/10265上已经有一个关于这个问题的相关问题。

但是,我将ember-template-compiler添加到我的package.json中,并再次得到相同的错误。

我做了:npm install --save-dev ember-template-compiler

这是我的package.json devDependencies:

代码语言:javascript
复制
 "ember-cli": "0.1.10",
 "ember-cli-app-version": "0.3.0",
 "ember-cli-content-security-policy": "0.3.0",
 "ember-cli-dependency-checker": "0.0.7",
 "ember-cli-htmlbars": "^0.6.0",
 "ember-cli-ic-ajax": "0.1.1",
 "ember-cli-inject-live-reload": "^1.3.0",
 "ember-cli-qunit": "0.3.0",
 "ember-cli-simple-auth": "^0.7.2",
 "ember-cli-simple-auth-cookie-store": "^0.7.2",
 "ember-cli-simple-auth-oauth2": "^0.7.2",
 "ember-cli-uglify": "1.0.1",
 "ember-data": "1.0.0-beta.12",
 "ember-export-application-global": "^1.0.0",
 "ember-template-compiler": "^1.8.0",
 "express": "^4.8.5",
 "glob": "^4.0.5"

参考文献:ember-template-compiler github页面

有人有使用HtmlBars和编译命令的经验吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-29 13:19:02

您正在尝试在客户机上编译HTMLBars模板,但是在package.json中添加ember-template-compiler只允许在服务器端预编译HTMLBars模板。

要启用客户端编译,您应该将ember-template-compiler添加到bower.json中,例如(使用适当的版本)。

代码语言:javascript
复制
"ember-template-compiler": "http://builds.emberjs.com/tags/v1.10.0-beta.3/ember-template-compiler.js"

然后把它包含在Brocfile.js中,

代码语言:javascript
复制
app.import('bower_components/ember-template-compiler/index.js');
票数 11
EN

Stack Overflow用户

发布于 2015-02-10 23:05:15

由于Ember.js 1.10模板编译器是Ember的一部分,所以要在客户端编译模板,只需在Brocfile中添加以下一行:

代码语言:javascript
复制
app.import('bower_components/ember/ember-template-compiler.js');
票数 16
EN

Stack Overflow用户

发布于 2015-06-25 20:50:01

对于我的视图,我只是为它们创建了模板文件。为了以您的案例为例,我将创建app/templates/view/carousel.hbs:

代码语言:javascript
复制
{{view view.itemsView}}

然后CarouselView变成:

代码语言:javascript
复制
var CarouselView = Ember.View.extend({
  templateName: 'views/carousel',
  elementId: 'carousel',
  contentBinding: 'content',
  ...

这样,您就不必给客户端模板编译器。应该会带来更好的性能和更小的有效负载,供客户端下载。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28213301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档