ember.js – 反对路由更改以应用等效于onload

前端之家收集整理的这篇文章主要介绍了ember.js – 反对路由更改以应用等效于onload前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试观察路线更改,以便在渲染后应用一些常见操作.我们的想法是拥有一个类似于onload的功能,但是当我们使用单页应用时,需要在每次路由更改时触发. (可以限定为新视图)

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

App.ApplicationController = Ember.Controller.extend({
  currentPathDidChange: function() {
    prettyPrint()
  }.observes('currentPath');
});

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

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

解决方法

您是否尝试过用 Ember.run.schedule推迟代码?例如,
App.ApplicationController = Ember.Controller.extend({
  currentPathDidChange: function() {
    Ember.run.schedule('afterRender',this,function() {
      prettyPrint();
    });
  }.observes('currentPath')
});

猜你在找的JavaScript相关文章