Ember.js获得当前路线

时间:2013-04-10 09:12:45

标签: ember.js ember-router

我正在切换到新的ember路由器,但有一个非常简单的问题 - 我如何找出我目前的路线?在您执行类似App.router.get('currentState')之类的操作之前,由于路由器不再继承自StateManager

,这似乎不再起作用

3 个答案:

答案 0 :(得分:8)

看看这个question

摘要:currentState现在存储在ApplicationController的属性currentPath中。接受的解决方案是观察此属性以将其写入全局属性:

App = Em.Application.create({
    currentPath: ''
});
ApplicationController : Ember.Controller.extend({
    updateCurrentPath: function() {
        App.set('currentPath', this.get('currentPath'));
    }.observes('currentPath')
});

答案 1 :(得分:6)

我可能会因此受到抨击,但在经历了这么多的挫折之后,我决定实施一个非常丑陋的解决方法。

我的用例试图获取当前帖子的ID,因为我发布了回复。对我们当前的路线考虑这样的事情:

” ...#/后/ 12345"

我的解决方法(最丑陋的代码):

var currentId = window.location.hash.split('/')[2];
 App.Message.createRecord({
      content: message,
      inReplyTo: currentId
    }).get('transaction').commit();

答案 2 :(得分:1)

在控制器中,我可以使用下面的代码获取当前路线名称。祝你好运

this.get( “currentRouteName”)