2014-02-09 15 views
1

我已經接管了一個稍微破碎的餘燼項目,但是我連最基本的模型都無法工作。我註釋掉所有前項目的代碼,並有基本上是這樣的:Ember:加載路徑時出錯:TypeError:對象函數...沒有方法'創建'

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控制檯:

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' 

接着一堆回溯的在餘燼代碼裏面。我不會在任何地方撥打create,並且它爲我已經註釋過的應用中的其他模型提供了類似的錯誤。我試圖按照「灰燼指南」的說法將它構建爲可以確保工作的東西。

餘燼檢查員認爲使用AdminsControlleradmins模板在/admins名爲AdminsRouteadmins路線。

簡而言之,我不知道如何進一步調試。

我試過了幾個版本的ember/-data,但是目前我使用的是1.4.0-beta.6和1.0.0-beta.6,並且仍然得到這個錯誤。

謝謝!

+0

重新啓動Chrome,錯誤不同:'加載路由時出錯:TypeError:undefined不是函數'。試試Firefox,錯誤仍然不同:'加載路由時出錯:實例化@ http:// localhost:3000 /'等 – Moacir

回答

3

這是一個常見的錯誤使用CoffeeScript中與Ember的時候,你必須更新

App.ApplicationAdapter = DS.FixtureAdapter.extend

App.ApplicationAdapter = DS.FixtureAdapter.extend()

+0

這似乎已經做到了。謝謝。但是我會繼續使用'DS.Store.extend ... adapter'語法。 – Moacir

+0

不錯!救星! – Willian

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' 
    } 
] 
+0

謝謝,但我也嘗試過。在CoffeeScript中,這些逗號是可選的。 – Moacir

0

先給型號的電腦燈一個唯一的ID

+0

一旦服務器看到模型,這是必要的。當我發佈查詢時,我甚至還沒有得到那麼多!謝謝! – Moacir

0

我懷疑可能是升級過程中出現了問題,而且這是商店的不完善實現。

store.coffee只是簡單地寫着:

App.ApplicationAdapter = DS.FixtureAdapter.extend 

我改變了到:

App.Store = DS.Store.extend 
    adapter:DS.FixtureAdapter 

它能正常工作(雖然我沒有要補充的ID,如@chopper說明)。看到我們將會使用api作爲商店,我會堅持這個變體,儘管@ marcio-junior的建議也起作用了!謝謝!

相關問題