反向路由更改以应用等效于onload

Séb*_*oon 6 routes observers ember.js

我正在尝试观察路线更改,以便在渲染后应用一些常见操作.我们的想法是拥有onload与之类似的功能,但是当我们使用单页应用时,需要在每次路由更改时触发.(可以限定为新视图)

我找到了如何观察currentPath的变化:

App.ApplicationController = Ember.Controller.extend({
  currentPathDidChange: function() {
    prettyPrint()
  }.observes('currentPath');
});
Run Code Online (Sandbox Code Playgroud)

虽然这在某些情况下效果很好,但是当路由发生变化时会触发它,但仍然要提前应用内容更改,因为它似乎在内容呈现之前附加.

有关实现这一目标的最佳实践的任何想法?

Jo *_*iss 12

您是否尝试过延迟代码Ember.run.schedule?例如,

App.ApplicationController = Ember.Controller.extend({
  currentPathDidChange: function() {
    Ember.run.schedule('afterRender', this, function() {
      prettyPrint();
    });
  }.observes('currentPath')
});
Run Code Online (Sandbox Code Playgroud)