2012-08-03 30 views
0

我試圖讓Ember在現有的Rails應用中工作,因此請安裝ember-rails gem。它給了我一個app.js基於this generator template包含Ember路由器構建 - App.Router.create undefined(帶有ember-rails)

var router = App.router = App.Router.create({ 
    enableLogging: true, 
    location: 'hash' 
}); 

App.initialize(router); 

我也想用ember-data,看到一些帖子說邊緣去的,唯一的辦法。所以如此更新ember-dataember.js自己到邊緣。

所以當我運行這個,我得到Uncaught TypeError: Cannot call method 'create' of undefinedApp.Router.create線。

我在猜測API已經改變,這已經過時,但無法找到創建此路由器對象的當前規範方式。

回答

1

的這裏的例子是規範AFAIK:http://emberjs.com/guides/outlets/

...除了Ember.State應該是Ember.Route現在。但這是你想要做的:

App.Router = Ember.Router.extend({ 
    enableLogging: true, 
    location: 'hash' 
}); 

App.initialize(); 
+0

我在另一個文件中設置了'Ember.Router.extend'來設置路由。但根據你發送的內容看起來像'App.initialize()'實際上並不需要傳遞給它的路由器對象。所以我把它拿出來,猜猜沒有更多的錯誤。謝謝:) – sbeam 2012-08-03 22:04:52

+0

如果這一切都改變了,我擔心日誌沒有啓用(這是真的嗎?),因爲'App.router'創建但未使用。我可能是錯的,但我認爲你想在這種情況下設置這些參數是'App.Router.reopen({...})' – dechov 2012-08-03 22:11:48

+0

'App.Router'是'App'的一部分,所以它可以在理論上使用。但我不知道'enableLogging'是否還有什麼用。它出現在很多示例代碼中,但我沒有看到任何控制檯輸出。有沒有關於'Ember.Router'的文檔? – sbeam 2012-08-03 22:23:00