0

我想在 URL 发生变化时调用一个函数。在较新版本的 Ember 中,我们可以通过观察来做到这一点currentPath。在这个版本中,我尝试了这个:

Ember.Route.reopen({
  enter: function(router) {
    console.log('change in URL and need to be called once per change in URL');
  }
});

由于有嵌套路由,所以这个方法被调用了多次。

4

1 回答 1

2

如果你正在使用Ember.HashLocation你可以这样做,观察lastSetURL属性:

window.App = Ember.Application.create({
  ...
  urlChanged: function(a,b,c,d) {
    var url = this.get('router.location.lastSetURL');
      if (!Ember.none(url)) {
        alert(url);
      }    
  }.observes('router.location.lastSetURL'),
  ...
});

这是此工作的示例http://jsfiddle.net/marciojunior/ba4hJ/

于 2013-08-27T00:48:41.107 回答