0

我有一个组件应该将动作冒泡到其模板路由器。

我将操作的名称传递给组件:

{{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);
     }
}

组件的操作被正确调用。然而,从那里开始,行动并没有冒泡。关于我可能会出错的任何想法?

4

1 回答 1

2

@JB2,您的代码几乎是完美的,我确信该操作会冒泡到 Route 级别。

但是,请注意,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 文档,我可以使用哪一个以及在哪里使用。:)

于 2016-04-08T12:59:47.630 回答