从子路由模型挂钩发送的动作不会在父路由中捕获

时间:2016-06-22 13:26:01

标签: javascript ember.js routing routes

在解释我的问题之前,让我告诉你我的配置。所以这是我的路由器的摘录:

Router.map(function() {
    [...]
    this.route('parent', {path: '/:parent_slug'}, function () {
        this.route('child', {path: '/:child_slug'});
    });
});

父路由显示需要parent_slug和可选child_slug的组件。所以在子路由afterModel()钩子中,我向父路由发送一个动作来更新它给组件的child_slug。

在儿童路线:

afterModel(model) {
    [...]
    this.send('myAction', model.childSlug);
    [...]
}

在父路线中:

actions: {
    myAction(slug) {
        this.set('childSlug', slug);
    }
}

如果我首先加载父路由然后转换到子路由,则父级将发送并正确捕获该操作,但如果我直接加载子路由,则不会捕获该操作。我试图在应用程序路径中捕获该操作并且它可以正常工作。

所以我想在childroute的afterModel()钩子中,父路由动作还没有加载。

你们知道这是一个错误还是一个正常行为?我的意思是在父路由完全加载之前开始加载子路由?

谢谢!

0 个答案:

没有答案