2014-06-16 62 views
1

我正在使用Ember-Rails構建一個帶有Rails API的前端Ember應用程序,用於beckend。我一直在努力實施身份驗證,我得出了以下錯誤: Cannot read property 'extend' of undefined試圖如下擴展路由時:Ember-Rails「無法讀取未定義的屬性」擴展「

App.AdminRoute = App.AuthenticateRoute.extend({ 
    model: function(params) { 
     return this.store.find('user', params.id); 
    }, 
}); 

我還有一個AuthenticateRoute定義如下:

App.AuthenticateRoute = Ember.Route.extend({ 
    //yada yada 
}); 

我更多或更少遵循指南上找到:http://www.embercasts.com/episodes/client-side-authentication-part-2

我不知道爲什麼,這是行不通的,但我發現我的AuthenticateRoute 可能可以從其他路線延伸,我覺得這很奇怪。

回答

2

原來,正如我們大多數人所知道的,Ember-Rails預編譯了所有這些文件,但沒有看到它(使用我認爲是理髮師的寶石)。我想沒有想到的是,當它結合所有這些文件時,它(按我所知)將它們按字母順序排列。因此,在宣佈AuthenticateRoute之前,我的AdminRoute被宣佈爲延伸AuthenticateRoute,從而產生錯誤。我還沒有確定如何解決this--

  • 一個天真的解決方法是簡單的文件名更改從admin_route.jszadmin_route.js,所以說到authenticate_route.js後,雖然這是不可取的原因很明顯。
  • 或者,也可以通過關閉標誌來關閉Ember-Rails中的預編譯。 (請參閱this

如果有人有更好的選擇,請在下面評論,否則我會在遇到解決方案時更新此內容。

相關問題