我想了解新路由器系統中的控制器。我明白他們存在來裝飾模型,並呈現非永久狀態的視圖/模板進行渲染。我瞭解Ember路由器用於從路由名稱實例化和設置每個控制器的單個副本的約定。但這是否意味着你永遠不應該有一個以上的控制器副本?這裏是我的用例:我有一組複雜的非持久性每個項目狀態(不同級別的摺疊/可見嵌套,不同編輯模式等)的一組嵌套列表。我不認爲這屬於視圖,它太複雜(因爲嵌套),以保持單身控制器 - 所以我打算有一個控制器實例每個視圖實例(儘管所有相同的控制器和視圖類)。這是聲音嗎?Ember.js使用新路由器訪問和組織控制器
二,更簡單的問題。如何訪問Ember路由器實例化的控制器?以前,你可以做App.get('router.postController')
但不再有效。
謝謝,這是有幫助的。至於第二個問題,有沒有辦法從全局上下文訪問控制器,例如在控制檯中? – 2013-04-11 18:10:51
是的,'App .__ container __。lookup('controller:post')',但**只在測試中**,不要在您的應用程序中使用它。 – 2013-04-11 18:13:31
那是因爲這會破壞Ember的預期範圍嗎?您是否真的沒有想要訪問路由器,視圖或控制器之外的控制器? (我現在想不到一個,但我不知道..也許在非單一非路由器實例化控制器的情況下) – 2013-04-11 20:01:43