有没有办法在路由的didTransition事件中调用多个函数?
以下是actions.didTransition正常运行的示例,但“someHook”不是:http://emberjs.jsbin.com/hedebigedi/1/edit?html,js,console,output
使用“.on()”运行任意函数甚至是可能的吗?
在这种情况下,我是否误解了事件的含义?
我想这样做的原因是因为我想制作一个mixin,它会被添加到某些路线,然后在didTransition之后进行一些常规设置,但路线也需要做一些自定义设置。我可以将相同的代码复制粘贴到每个路由的actions.didTransition中,但是我只能在一个地方使用它。
答案 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();
}
}
});