如何使用Ember获取当前URL(包括哈希后的部分)

时间:2013-06-17 17:18:03

标签: javascript ember.js

我需要从Ember获取当前url作为“redirectTo”参数。该参数将用于在用户从其他应用程序登录后将用户重定向回同一页面。网址看起来像

http://test.com/apps/#/tables/7

我发现this post从应用程序获取currentPath / route。它提供了当前的路由名称,但我想知道如何从Ember获取包括id的完整路径。我有一个嵌套的路由声明如下所示。

App.Router.map(function() {
  this.resource('tables', function() {
    this.resource('table', { path: ':table_id' });
  });
});

欢迎任何建议。谢谢!

3 个答案:

答案 0 :(得分:3)

观察ApplicationController中的currentPath并更新当前URL:

App.ApplicationController = Ember.Controller.extend({
  currentPathDidChange: function() {
    App.currentUrl = window.location.href;
  }.observes('currentPath')
});

答案 1 :(得分:0)

你能使用window.location吗?

var url = window.location.href;

答案 2 :(得分:-1)

感谢@Panagiotis Panagi,它有效。

此外,currentUrl只能从应用程序控制器访问,因此如果您想从其他地方获取它,可以将此代码添加到您想要访问它的某个控制器:

export default Ember.Controller.extend({
  needs: ['application'],
  currentPath: Ember.computed.alias('controllers.application.currentPath'),
    ...

}