我正在使用MathJax库,它允许您在页面上使用乳胶,但只有在您从<a>
访问路线时才会运行。如果您从{{link-to}}
帮助者访问,则它不会运行它的排版功能,因为该页面实际上并未重新加载。
我已经能够通过将其放在每条路线中来解决这个问题:
activate () {
Ember.run.scheduleOnce('afterRender', this, function() {
MathJax.Hub.Queue(["Typeset", MathJax.Hub, document.body]);
});
}
但我很好奇是否有全局激活功能我可以覆盖/扩展以避免将此语句放在每一页上。
答案 0 :(得分:4)
您可以创建一个mixin(http://emberjs.com/api/classes/Ember.Mixin.html):
//app/mixins/base-route.js
import Ember from 'ember';
export default Ember.Mixin.create({
activate () {
Ember.run.scheduleOnce('afterRender', this, function() {
MathJax.Hub.Queue(["Typeset", MathJax.Hub, document.body]);
});
}
});
//app/routes/some.js
import Ember from 'ember';
import RouteMixin from '../mixins/base-route';
export default Ember.Route.extend(RouteMixin, {});
或尝试使用重新打开(http://guides.emberjs.com/v1.13.0/object-model/reopening-classes-and-instances/)