路径中有多个didTransition挂钩

时间:2015-03-04 13:24:48

标签: javascript ember.js

有没有办法在路由的didTransition事件中调用多个函数?

以下是actions.didTransition正常运行的示例,但“someHook”不是:http://emberjs.jsbin.com/hedebigedi/1/edit?html,js,console,output

使用“.on()”运行任意函数甚至是可能的吗?

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

我想这样做的原因是因为我想制作一个mixin,它会被添加到某些路线,然后在didTransition之后进行一些常规设置,但路线也需要做一些自定义设置。我可以将相同的代码复制粘贴到每个路由的actions.didTransition中,但是我只能在一个地方使用它。

1 个答案:

答案 0 :(得分:0)

它不起作用。有效的方法是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();
    }
  }
});
相关问题