Ember 1.10 - Ошибка обновления - шаблон должен быть функцией. Вы хотели вызвать Ember.Handlebars.compile("...") или указать вместо него templateName?

Я нахожусь в процессе обновления приложения Ember 1.8 до Ember 1.10. Мы используем bower и мои версии и зависимости следующие:

"ember": "~1.10.0",
"ember-data": "1.0.0-beta.14",
"ember-resolver": "~0.1.11",
"ember-validations-nocli": "~1.4.2"

Ресурсы Ember обслуживаются приложением Rails, а мой application.js выглядит примерно так:

//= require jquery
//= require jquery-ui/sortable
//= require bootstrap
//= require selectize/dist/js/standalone/selectize
//= require filesize/lib/filesize
//= require moment/moment
//= require ember-template-compiler
//= require ember
//= require ember-data
//= require ember-validations-nocli/dist/ember-validations.js

Теперь, когда я перехожу к корневому маршруту моего приложения Ember, я получаю следующую ошибку:

Error: Assertion Failed: template must be a function. Did you mean to call Ember.Handlebars.compile("...") or specify templateName instead?
at new Error (native)
at Error.EmberError (http://localhost:7000/assets/admin-35a600b33b51fec0abd608728144b875.js:41133:23)
at Object.Ember.assert (http://localhost:7000/assets/admin-35a600b33b51fec0abd608728144b875.js:32532:15)
at CoreView.extend.render (http://localhost:7000/assets/admin-35a600b33b51fec0abd608728144b875.js:73318:19)
at EmberRenderer_createElement [as createElement] (http://localhost:7000/assets/admin-35a600b33b51fec0abd608728144b875.js:68963:16)
at EmberRenderer.Renderer_renderTree [as renderTree] (http://localhost:7000/assets/admin-35a600b33b51fec0abd608728144b875.js:37456:24)
at EmberRenderer.scheduledRenderTree (http://localhost:7000/assets/admin-35a600b33b51fec0abd608728144b875.js:37533:16)
at Queue.invokeWithOnError (http://localhost:7000/assets/admin-35a600b33b51fec0abd608728144b875.js:29455:20)
at Object.Queue.flush (http://localhost:7000/assets/admin-35a600b33b51fec0abd608728144b875.js:29511:13)
at Object.DeferredActionQueues.flush (http://localhost:7000/assets/admin-35a600b33b51fec0abd608728144b875.js:29316:19)

Проблема в том, что в трассировке стека не указано, в каком шаблоне или в каком файле произошла ошибка. Любая идея, как я могу найти источник этой проблемы? Трассировка стека вообще не помогает, кроме того, что где-то мой шаблон неверен. Я не использую grunt для компиляции чего-либо, и мы также не используем Ember-CLI.

Любая помощь или предложения? Спасибо!

2 ответа

У меня та же проблема. Моя версия ember-template-compiler: 1.9.0.

Я нашел автономный компилятор, который работал для меня. em-hbs-precompiler https://www.npmjs.com/package/em-hbs-precompiler

Я не хочу идти этим путем, но я надеюсь, что кто-то найдет лучшее решение с ворчанием.

Я пошел на http://emberjs.com/blog/2015/02/05/compiling-templates-in-1-10-0.html и https://github.com/dgeb/grunt-ember-templates/pull/77 за помощь, но проблема, с которой я столкнулся, была в том, что я использовал руль 3.0, а не 2.0.

options:{ 
    templateCompilerPath: 'ember-template-compiler.js',
     handlebarsPath: 'handlebars.js',
}

для handlebarsPath убедитесь, что вы используете руль 2.0.

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