无法获取currentRouteName

时间:2014-02-26 14:38:35

标签: javascript ember.js

在我的ApplicationController中,我有以下内容:

init: function () {
    console.log(this.currentRouteName);
}

但它会记录undefined但是如果我记录console.log(this);我可以看到属性及其值。

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

编辑:我刚刚意识到您正在尝试访问控制器的init功能中的属性。该控制器由容器自动实例化。当容器创建该对象时,您的应用程序很可能尚未开始路由,因此没有当前路由。

所以我认为简短的回答是:你做不到。


您需要使用Em.get。有时直接访问属性有效,但有时它不会(取决于对象的结构)。

console.log(Em.get(this, 'currentRouteName'));

console.log(this.get('currentRouteName'));