2014-11-08 76 views
1

我正在使用grunt-ember-templates进行Handlebars模板的预编译。这些脚本是按以下顺序:Ember在预编译的hbs模板中未定义

<script src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.3.0/handlebars.runtime.min.js"></script> 
<script src="/js/ember.min.js"></script> 
<script src="/js/app.js"></script> 
<script src="/build/templates.js"></script> 
<script src="/js/router.js"></script> 
..... 

templates.js

define(["ember"], function(Ember){ 

Ember.TEMPLATES["index"] = Ember.Handlebars.template(functionanonymous(Handlebars,depth0,helpers,partials,data) { 
this.compilerInfo = [4,'>= 1.0.0']; 
helpers = this.merge(helpers, Ember.Handlebars.helpers); 
data = data || {}; 
var buffer = '', stack1, escapeExpression=this.escapeExpression, self=this; 

function program1(depth0,data) { 

var buffer = ''; 
... 
..... 
return buffer; 

}); 

现在我得到这个Uncaught ReferenceError: define is not defined错误是指define(["ember"], function(Ember){。我究竟做错了什么?

回答

1

amd到配置错误:

emberTemplates: { 
    compile: { 
    options: { 
     amd: false, 
     templateBasePath: /path\/to\// 
    }, 
    files: { 
     "path/to/result.js": "path/to/source.handlebars", 
     "path/to/another.js": ["path/to/sources/*.handlebars", "path/to/more/*.handlebars"] 
    } 
    } 
} 

https://github.com/dgeb/grunt-ember-templates