路由中有多个didTransition挂钩

Multiple didTransition hooks in route

本文关键字:didTransition 挂钩 路由      更新时间:2023-09-26

有没有一种方法可以让多个函数都在路由的didTransition事件上调用?

以下是actions.didTransition正常运行,但"someHook"不正常运行的示例:http://emberjs.jsbin.com/hedebigedi/1/edit?html,js,控制台,输出

使用".on()"是否可以运行任意函数?

我是否误解了事件在这种情况下的含义?

我之所以想这样做,是因为我想制作一个混合,添加到某些路由中,然后在didTransition之后进行一些常规设置,但这些路由也需要进行一些自定义设置。我可以将相同的代码复制粘贴到每条路由的操作中。didTransition,但我只想把它放在一个地方。

它不起作用。on('init')会起作用,但这是一种方法而不是事件,请参阅:http://emberjs.com/api/classes/Ember.Route.html

要解决您的问题,请执行以下操作:

import CleverMixin from 'path/to/mixin';
import AnotherMixin from 'path/to/mixin';    
App.IndexRoute = Ember.Route.extend(CleverMixin, AnotherMixin, {
  model: function() {
    return ['red', 'yellow', 'blue'];
  },
  actions: {
    didTransition: function () {
      // This function will be provided by a mixin
      this.setupStuff();
      // This function will be provided by another mixin
      this.doMoreStuff();
    }
  }
});