2014-01-09 40 views
1

我有一個控制器(KbRelatedGroupController),它通過模板中的{{render}}幫助程序加載。如何從控制器獲取當前路線的參考?

在控制器的操作中,如果我做this.get('target'),它將返回頁面父控制器的引用(KbShowController)。

如果我打電話給.target,那我可以參考Discourse.Router,這對我不好。

我想要的是對KbShowRoute的引用,這是我所期望的,因爲.target應該在從控制器調用時產生路由器嗎?

這裏真的很困惑。爲什麼很難從控制器獲得當前路線的參考?

回答

3

我看到它的方式,你不應該。你可以讓動作冒泡的路線:

App.KbShowRoute = Ember.Route.extend({ 
    ... 
    actions: { 
     something: function() { 
      console.log('called second'); 
     } 
    } 
}); 

App.KbShowController = Ember.Controller.extend({ 
    ... 
    actions: { 
     something: function() { 
      console.log('called first'); 
     } 
    } 
}); 

看到docs

,你可以:

  1. 手柄控制器的動作的一部分,讓它泡到路線通過在控制器的動作處理程序中不返回任何東西
  2. 讓路由處理動作(通過不將動作添加到控制器的動作哈希)以及從路徑使用this.controllerFor(this.routeName).sendAction('..', ...)來調用差異nt動作(或動作的一部分)在控制器中。

我希望這可以幫助你!

+0

我想這是有道理的。我最終做了像你所說的話。謝謝! – hooverlunch

相關問題