Javascript Ember.js为每一条路线运行路线更改功能。全局激活功能?

Javascript Ember.js为每一条路线运行路线更改功能。全局激活功能?,javascript,ember.js,Javascript,Ember.js,我使用的是MathJax库,它允许您在页面上添加latex,但它只在您从一个站点访问路由时运行。如果您从{{link to}}助手访问,它将不会运行排版功能,因为页面实际上没有重新加载 我已经能够通过在每一条路线上都放上这个来解决这个问题: activate () { Ember.run.scheduleOnce('afterRender', this, function() { MathJax.Hub.Queue(["Typeset", MathJax.Hub, doc

我使用的是MathJax库,它允许您在页面上添加latex,但它只在您从一个站点访问路由时运行。如果您从{{link to}}助手访问,它将不会运行排版功能,因为页面实际上没有重新加载

我已经能够通过在每一条路线上都放上这个来解决这个问题:

  activate () {
    Ember.run.scheduleOnce('afterRender', this, function() {
      MathJax.Hub.Queue(["Typeset", MathJax.Hub, document.body]);
    });
  }
但我很好奇,是否有一个全局激活函数可以覆盖/扩展,以避免将此语句放在每个页面上。

您可以创建一个mixin:

或者尝试使用“重新打开”

//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, {});