2013-04-29 34 views
0


我嘗試了一下通過StackOverflow搜索一些答案,但找不到。請參閱下面的代碼片段 - Ember stateManager無法找到控制器實例。此外,視圖代碼也沒有呈現,請指導我對所犯的錯誤。Ember StateManager找不到控制器

Dashboard.stateManager = Ember.StateManager.create({ 
start: Ember.State.extend({ 
    controller: null, 

    enter: function(manager) { 
     this.controller = manager.get('indexController'); 
     this.setPath('view.controller', this.controller); 
     console.log(this.controller); 
    }, 

    view: Dashboard.MapView 

}) 
}); 
Dashboard.initialize(Dashboard.stateManager); 
Dashboard.stateManager.transitionTo('start'); 

的Dashboard.MapView是複雜的,它看起來像

Dashboard.MapView = Ember.View.extend({ 
... 
)}; 

難道我有那麼這一觀點得到執行添加的東西嗎?爲什麼statemanager無法獲得'indexController') - 雖然Dashboard.IndexController是在加載頁面後定義的,但控制檯輸出在控制檯日誌行中返回undefined,Dashboard.stateManager也是如此。

請注意,該應用程序是單頁,所以我沒有定義路線,儘管IndexController已定義。這可能是一個問題嗎?但該應用程序沒有說'route undefined'等,但該頁面是空白的?這是爲單頁面應用程序定義StateManager的正確方法,而不使用「/」之外的任何路線嗎?

謝謝
水稻

回答

0

如果您使用的是最新灰燼的版本,我想辦法讓你的控制器來代替路由器的使用將是一個stateManager:

manager.get('container').lookup('controller:index') 
+0

嗨,
我試過了,但它仍然給manager.get('container')undefined,我是否必須提供有關我的頁面佈局或其他任何內容的更多詳細信息? – Paddy 2013-04-30 04:58:08

+0

在這個[page]中找到了答案(http://www.akshay.cc/blog/2013-02-22-debugging-ember-js-and-ember-data.html),但我的觀點仍然沒有渲染。 – Paddy 2013-04-30 06:45:15

+0

StateManagers對於理解「視圖」屬性沒有特別的要求。我想你可能在查看關於ViewStates的相當老的信息? – 2013-04-30 16:29:22