Ember не определен в предварительно скомпилированных шаблонах hbs

Я использую https://github.com/dgeb/grunt-ember-templates для предварительной компиляции шаблонов Handlebars. Сценарии в следующей последовательности:

<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 false в вашей конфигурации:

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

Другие вопросы по тегам