我接手了一个稍微破碎的余烬项目,但我甚至无法获得最基本的模型。我已经注释掉了前一个项目的所有代码,基本上只有这个:
App = Ember.Application.create();
App.ApplicationAdapter = DS.FixtureAdapter.extend
App.Admin = DS.Model.extend(
userName: DS.attr("string")
roles: DS.attr("string")
)
App.Admin.FIXTURES = [
{
userName: 'Tester One'
roles: 'six-sided die'
}
{
userName: 'Tester Two'
roles: 'four-sided die'
}
]
App.Router.map ->
@route 'about', { path: '/about' }
@resource 'admins', { path: '/admins' }
App.AdminsRoute = Ember.Route.extend
model: ->
return @store.find('admin')
它是在Rails 4.0.1应用程序内部构建的(运行ember-rails
的0.14.1和ember-source
的1.3.2)。当我转到根页面时,我看到了正确的余烬模板。当我点击about
的链接时,我会转到about
模板。但是当我点击admins
或转到/admins
时,我没有渲染admins
模板(这只是一些静态文本),而是在我的js控制台中收到此错误:< / p>
Error while loading route: TypeError: Object function () {
var Class = makeCtor(), proto;
Class.ClassMixin = Mixin.create(this.ClassMixin);
Class.PrototypeMixin = Mixin.create(this.PrototypeMixin);
Class.ClassMixin.ownerConstructor = Class;
Class.PrototypeMixin.o...<omitted>... } has no method 'create'
后面是ember代码中的一堆回溯。我没有在任何地方调用create
,并且它为应用程序中的其他模型提供了类似的错误(我已经注释掉了)。我试图在ember指南之后构建这个可以肯定的东西。
Ember检查员使用admins
上的AdminsRoute
和AdminsController
模板看到名为admins
的{{1}}路线。
简单地说,我不知道如何进一步调试它。
我已经尝试了几个版本的ember / -data,但目前我正在使用1.4.0-beta.6和1.0.0-beta.6并且仍然出现此错误。
谢谢!
答案 0 :(得分:3)
将coffeescript与ember一起使用时,这是一个常见的错误,你必须更新
App.ApplicationAdapter = DS.FixtureAdapter.extend
到
App.ApplicationAdapter = DS.FixtureAdapter.extend()
答案 1 :(得分:0)
可能是缺少的逗号吗?
App.Admin.FIXTURES = [
{
userName: 'Tester One'
roles: 'six-sided die'
}
{
userName: 'Tester Two'
roles: 'four-sided die'
}
]
到
App.Admin.FIXTURES = [
{
userName: 'Tester One'
roles: 'six-sided die'
},
{
userName: 'Tester Two'
roles: 'four-sided die'
}
]
答案 2 :(得分:0)
尝试为灯具中的模型添加唯一ID
答案 3 :(得分:0)
我怀疑升级过程可能会出现问题,这是商店的不完善实施。
store.coffee
只读过:
App.ApplicationAdapter = DS.FixtureAdapter.extend
我把它改为:
App.Store = DS.Store.extend
adapter:DS.FixtureAdapter
它工作正常(虽然我确实必须添加id,正如@chopper所说)。看到我们将为商店使用api,我会坚持这个变种,虽然@ marcio-junior的建议也有效!谢谢!