0

我正在将 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。

有什么帮助或建议吗?谢谢!

4

2 回答 2

0

我去了 http://emberjs.com/blog/2015/02/05/compiling-templates-in-1-10-0.htmlhttps://github.com/dgeb/grunt-ember-templates/ pull/77 寻求帮助,但我遇到的问题是我使用的是把手 3.0 而不是 2.0。

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

对于车把路径,请确保您使用的是车把 2.0。

于 2015-03-22T02:20:59.903 回答
0

我有同样的问题。我的 ember-template-compiler 版本是 1.9.0。

我找到了一个适合我的独立编译器。em-hbs-precompiler https://www.npmjs.com/package/em-hbs-precompiler

这不是我想走的路,但我希望有人能用 grunt 找到更好的解决方案。

于 2015-03-21T00:19:52.507 回答