Ember 组件动作没有冒泡到模板路由器
Ember component action not bubbling up to template router
我有一个组件应该将一个动作冒泡到它的模板路由器。
我将动作的名称传递给组件:
{{project-table projects=model viewProject="viewProject"}}
在我的组件(项目-table)中,我有:
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);
}
}
组件的动作被正确调用。然而,从那以后,行动并没有冒泡。关于我可能会出错的任何想法?
@JB2,你的代码几乎是完美的,我确信动作会冒泡到路由级别。
但是,请注意,Route 只有 transitionTo
方法。 http://emberjs.com/api/classes/Ember.Route.html#method_transitionTo
在 Controller 中,您可以使用 transitionToRoute
方法。
http://emberjs.com/api/classes/Ember.Controller.html#method_transitionToRoute
很容易混合。 :) 我也经常检查 API 文档,我可以使用哪个文档以及在哪里使用。 :)
我有一个组件应该将一个动作冒泡到它的模板路由器。
我将动作的名称传递给组件:
{{project-table projects=model viewProject="viewProject"}}
在我的组件(项目-table)中,我有:
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);
}
}
组件的动作被正确调用。然而,从那以后,行动并没有冒泡。关于我可能会出错的任何想法?
@JB2,你的代码几乎是完美的,我确信动作会冒泡到路由级别。
但是,请注意,Route 只有 transitionTo
方法。 http://emberjs.com/api/classes/Ember.Route.html#method_transitionTo
在 Controller 中,您可以使用 transitionToRoute
方法。
http://emberjs.com/api/classes/Ember.Controller.html#method_transitionToRoute
很容易混合。 :) 我也经常检查 API 文档,我可以使用哪个文档以及在哪里使用。 :)