Javascript 佩斯和恩伯,我如何使它在所有路线工作,而不重复代码
我正在使用带有速度加载功能的ember 速度: 在我的代码中,我在每条路线中重复此操作,以便显示加载栏:Javascript 佩斯和恩伯,我如何使它在所有路线工作,而不重复代码,javascript,ember.js,Javascript,Ember.js,我正在使用带有速度加载功能的ember 速度: 在我的代码中,我在每条路线中重复此操作,以便显示加载栏: App.IndexRoute = Ember.Route.extend({ activate: function() { this._super(); return Pace.restart(); }, deactivate: function() { this._super(); return Pace.stop(); } }); App.
App.IndexRoute = Ember.Route.extend({
activate: function() {
this._super();
return Pace.restart();
},
deactivate: function() {
this._super();
return Pace.stop();
}
});
App.AboutRoute = Ember.Route.extend({
activate: function() {
this._super();
return Pace.restart();
},
deactivate: function() {
this._super();
return Pace.stop();
}
});
有没有办法不在每条路线上重复代码?谢谢 您可以通过执行以下操作覆盖所有路由:
Ember.Route.reopen({
activatePace: function() {
return Pace.restart();
}.on('activate'),
deactivatePace: function() {
return Pace.stop();
}.on('deactivate')
});
此外,这不会干扰现有的激活/停用
挂钩,因此您不必调用this.\u super()
请参阅有关重新打开的文档您可以通过执行以下操作覆盖所有路由:
Ember.Route.reopen({
activatePace: function() {
return Pace.restart();
}.on('activate'),
deactivatePace: function() {
return Pace.stop();
}.on('deactivate')
});
此外,这不会干扰现有的激活/停用
挂钩,因此您不必调用this.\u super()
请参阅有关重新打开的文档您可以通过执行以下操作覆盖所有路由:
Ember.Route.reopen({
activatePace: function() {
return Pace.restart();
}.on('activate'),
deactivatePace: function() {
return Pace.stop();
}.on('deactivate')
});
此外,这不会干扰现有的激活/停用
挂钩,因此您不必调用this.\u super()
请参阅有关重新打开的文档您可以通过执行以下操作覆盖所有路由:
Ember.Route.reopen({
activatePace: function() {
return Pace.restart();
}.on('activate'),
deactivatePace: function() {
return Pace.stop();
}.on('deactivate')
});
此外,这不会干扰现有的激活/停用
挂钩,因此您不必调用this.\u super()
请参阅有关重新打开的文档,我建议您创建或使用Ember的加载路径 因此,在您的情况下,Mixin的工作原理如下:
App.PaceLoader = Ember.Route.extend({
activate: function() {
this._super();
return Pace.restart();
},
deactivate: function() {
this._super();
return Pace.stop();
}
});
然后只需将其包含在您希望其工作的每条路线中:
App.AboutRoute = Ember.Route.extend(App.PaceLoader, {
//the rest of your route code here...
});
我以前没有使用过Pace,但您可以将它添加到Ember不太明显的装载路线中(我不相信他们已经记录了它…),这在每个转换中都会用到:
App.LoadingRoute = Ember.Route.extend({
activate: function() {
this._super();
return Pace.restart();
},
deactivate: function() {
this._super();
return Pace.stop();
}
});
如果这样做有效,您就不必将其包括在任何其他路线中。:) 我建议创建一个或利用Ember的装载路线 因此,在您的情况下,Mixin的工作原理如下:
App.PaceLoader = Ember.Route.extend({
activate: function() {
this._super();
return Pace.restart();
},
deactivate: function() {
this._super();
return Pace.stop();
}
});
然后只需将其包含在您希望其工作的每条路线中:
App.AboutRoute = Ember.Route.extend(App.PaceLoader, {
//the rest of your route code here...
});
我以前没有使用过Pace,但您可以将它添加到Ember不太明显的装载路线中(我不相信他们已经记录了它…),这在每个转换中都会用到:
App.LoadingRoute = Ember.Route.extend({
activate: function() {
this._super();
return Pace.restart();
},
deactivate: function() {
this._super();
return Pace.stop();
}
});
如果这样做有效,您就不必将其包括在任何其他路线中。:) 我建议创建一个或利用Ember的装载路线 因此,在您的情况下,Mixin的工作原理如下:
App.PaceLoader = Ember.Route.extend({
activate: function() {
this._super();
return Pace.restart();
},
deactivate: function() {
this._super();
return Pace.stop();
}
});
然后只需将其包含在您希望其工作的每条路线中:
App.AboutRoute = Ember.Route.extend(App.PaceLoader, {
//the rest of your route code here...
});
我以前没有使用过Pace,但您可以将它添加到Ember不太明显的装载路线中(我不相信他们已经记录了它…),这在每个转换中都会用到:
App.LoadingRoute = Ember.Route.extend({
activate: function() {
this._super();
return Pace.restart();
},
deactivate: function() {
this._super();
return Pace.stop();
}
});
如果这样做有效,您就不必将其包括在任何其他路线中。:) 我建议创建一个或利用Ember的装载路线 因此,在您的情况下,Mixin的工作原理如下:
App.PaceLoader = Ember.Route.extend({
activate: function() {
this._super();
return Pace.restart();
},
deactivate: function() {
this._super();
return Pace.stop();
}
});
然后只需将其包含在您希望其工作的每条路线中:
App.AboutRoute = Ember.Route.extend(App.PaceLoader, {
//the rest of your route code here...
});
我以前没有使用过Pace,但您可以将它添加到Ember不太明显的装载路线中(我不相信他们已经记录了它…),这在每个转换中都会用到:
App.LoadingRoute = Ember.Route.extend({
activate: function() {
this._super();
return Pace.restart();
},
deactivate: function() {
this._super();
return Pace.stop();
}
});
如果这样做有效,您就不必将其包括在任何其他路线中。:) 谢谢,最后一个选项似乎不起作用,但第一个选项似乎很有趣,尽管我用@Kalman Hazins-answer解决了这个问题,这似乎更简单。谢谢谢谢,最后一个选项似乎不起作用,但第一个选项似乎很有趣,尽管我用@Kalman Hazins-answer解决了这个问题,这似乎更简单。谢谢谢谢,最后一个选项似乎不起作用,但第一个选项似乎很有趣,尽管我用@Kalman Hazins-answer解决了这个问题,这似乎更简单。谢谢谢谢,最后一个选项似乎不起作用,但第一个选项似乎很有趣,尽管我用@Kalman Hazins-answer解决了这个问题,这似乎更简单。谢谢