2015-11-02 47 views
-1

我是Ember的新手,對於在何處放置通用代碼存在疑問。 考慮一個簡單的場景。我有一個AJAX請求,我想在多個地方使用響應(比如路由和一些控制器或2個不同的控制器)Ember跨對象調用公共代碼

我有2個問題;

  1. 在餘燼,我可以從任何其他 控制器(比如Y.js)訪問任何控制器(說X.js),通過只使用 this.controllerFor(this.routeName)
  2. 如果上述是否是一種更好的通用代碼方法(即在X控制器中具有保存公共API響應的屬性),然後在另一個控制器中使用它?或者我應該使用Ember Service作爲通用代碼並通過依賴注入消耗公共代碼/ API響應?

這個用例的正確方法是什麼?

回答

0

我應該使用Ember服務的通用代碼,並通過依賴 注入,消費通用代碼/ API響應?

是的,你應該使用Ember服務。

原因:

  • 控制器將在未來被刪除,取而代之的是成分
  • 您可以在任何控制器,路線注入服務,甚至部分
  • 更好的代碼抽象和分離關注