2016-04-07 27 views
0

我有一個組件應該將動作冒泡到它的模板路由器。Ember組件動作不冒泡到模板路由器

我通過動作到組件的名稱:

{{project-table projects=model viewProject="viewProject"}} 

內我的組件(項目表),我有:

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    actions: { 
     viewProject: function (project) { 
      this.sendAction('viewProject', project); 
     } 
    } 
}); 

內組件的模板,我有:

<button type="button" {{action "viewProject" project}}> 
    My Button 
</button> 

最後但並非最不重要的,我有我的路由器:

actions: { 
    viewProject: function (project) { 
     this.transitionToRoute('project', project); 
    } 
} 

正確調用組件的操作。然而從那以後,這個行爲並沒有起泡。任何關於我可能會出錯的想法?

+0

不知道這是否是一個錯字,但您的項目表控制器擴展Ember.Component,所以它不是一個控制器。 –

+0

你可以給你的行爲指定不同的名字嗎? – ykaragol

+0

'project-table'是否在另一個組件中? – locks

回答

2

@ JB2,你的代碼幾乎是完美的,我相信這個動作是冒泡到Route級別的。

但是,請注意,路線只有transitionTo方法。可以使用transitionToRoute方法。 http://emberjs.com/api/classes/Ember.Controller.html#method_transitionToRoute

很容易混合。 :)我也經常檢查API文檔,我可以使用哪個以及哪裏。 :)

+1

謝謝佐爾坦。是的,就是這樣! :-) Uff,我花在這哈哈上的時間。謝謝!! – JB2