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

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


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

有人知道如何解决吗?

最佳答案

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

因此,我认为简短的答案是:您不能这样做。



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

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


要么

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

关于javascript - 无法获取currentRouteName,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22044632/

10-12 00:20