2013-02-22 77 views
2

我有完整的聯繫人編輯對話框。我現在想用最少的必要努力創建匹配的新聯繫人對話框。新的對話框與模型初始化相同。Ember.js:我如何重用其他路線的控制器/視圖

我有以下新航線:

App.ContactNewRoute = App.BaseEntityRoute.extend({ 
     init: function() { 
      this._super(); 
      this.keyName = "contact_id"; 
      this.controllerRoute = "contact.new"; 
      this.datasource = App.contactDataSource.getNewContact; 
     } 
}); 

我怎麼能告訴餘燼,它應該使用ContactEditController和ContactEditView這條路?

+0

你想重用的控制器類或也完全相同的實例?我看到每種情況的可能解決方案。 – mavilein 2013-02-22 09:26:47

+0

我想重新使用控制器類.. – AyKarsi 2013-02-22 09:37:31

回答

3

如果你想重用這個類,爲什麼不嘗試這樣?

App.ContactNewController = App.ContactEditController.extend(); 

App.ContactNewView = App.ContactEditView.extend(); 

Ember現在基於它的命名模式找到類,一切都應該很好。但爲什麼你真的需要這個?你基本上用一個新名稱鏡像一個新路線中的路線的所有部分,但所有其他組件(控制器,視圖)保持不變?

+0

所以你說的是,用假身份證過渡到ContactEdit路由會更好嗎?例如contact.edit.0 – AyKarsi 2013-02-22 10:27:49

+0

哦,我只是注意到我沒有想過你的用例。^^你想要支持創建新聯繫人和編輯由同一個控制器支持的聯繫人的用例。所以,我想這種方法很好。唯一的另一種方法是做一個組合的組件,在那裏你可以編輯和創建。但是,通過提供一個url,我不會輕易跳入創建狀態。 – mavilein 2013-02-22 11:23:28

+0

在這種情況下,您可能必須使用假身份證,如上所述。所以我的建議對於這個案例來說很好,因爲它似乎是對你的問題的一種粗暴的評價。 – mavilein 2013-02-22 11:24:51

相關問題