2016-04-07 26 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