gpt4 book ai didi

javascript - Pace和ember,如何让它在所有路线上工作而不重复代码

转载 作者:行者123 更新时间:2023-11-28 19:25:46 25 4
gpt4 key购买 nike

我正在使用 ember 和 Pace 加载功能。

速度:http://github.hubspot.com/pace/docs/welcome/

在我的代码中,我在每个 route 重复此操作,以便出现加载栏:

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();
}
});

有没有办法让每个路由中不重复代码?谢谢!

最佳答案

我建议创建一个 Mixin或利用 Ember 的加载路线。

因此,在您的情况下,Mixin 将按如下方式工作:

App.PaceLoader = Ember.Route.extend({
activate: function() {
this._super();
return Pace.restart();
},
deactivate: function() {
this._super();
return Pace.stop();
}
});

然后将其包含在您希望其工作的每个 route :

App.AboutRoute = Ember.Route.extend(App.PaceLoader, {
//the rest of your route code here...
});

我以前没有使用过 Pace,但你也许可以将它添加到 Ember 不太明显的加载 route (我不相信他们已经记录了它......),该路线在每个转换中使用:

App.LoadingRoute = Ember.Route.extend({
activate: function() {
this._super();
return Pace.restart();
},
deactivate: function() {
this._super();
return Pace.stop();
}
});

如果这有效,您就不必将其包含在任何其他路由中。 :)

关于javascript - Pace和ember,如何让它在所有路线上工作而不重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27908232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com