2012-06-18 70 views
0

我在我的路由器中有一個State,它使用我的視圖類UserApp.RegistrationView連接一個插座。對於這一觀點,RegistrationController右控制器類的創作,似乎根據約定,以神奇的工作:如何在emberjs中執行控制器初始化

registration: Em.State.extend({ 
    route: '/reg', 
    registrationModel: null, 
    connectOutlets: function (router) { 
     router.get('applicationController').connectOutlet(UserApp.RegistrationView, UserApp.RegistrationModel.create()); 
    } 
}) 

所以我不控制控制器的創作,但我想運行一些初始化代碼,當控制器創建。什麼是最好的方式來做到這一點?

回答

2

什麼樣的初始化?控制器被擡起,然後被框架注入。 無論如何,使用最新版本的emberjs,您可以將控制器的實例傳遞給connectOutlet。

@see https://github.com/emberjs/ember.js/commit/be69395f5eec4187b1df052d7386bcda45f79475

+0

我想通過connectOutlet返回視圖,並從那裏我可以「獲得」控制器(然後可以調用我自己的initialize()方法)。但是,鏈接的更新應該使它更清潔一點,謝謝! – bradw2k

0

你最好直接去從主科建ember.js的源代碼。代碼註釋更具信息性。