在Ember v1.0.pre中回调URL的更改

时间:2013-08-26 07:29:53

标签: ember.js

我希望在URL更改时调用函数。 在较新版本的Ember中,我们可以通过观察currentPath来实现。 在这个版本中,我尝试了这个:

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

由于存在嵌套路由,因此多次调用此方法。

1 个答案:

答案 0 :(得分: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/

的示例