在我的ApplicationController中,我有以下内容:
init: function () {
console.log(this.currentRouteName);
}
但它会记录undefined
但是如果我记录console.log(this);
我可以看到属性及其值。
有人知道如何解决这个问题吗?
答案 0 :(得分:2)
init
功能中的属性。该控制器由容器自动实例化。当容器创建该对象时,您的应用程序很可能尚未开始路由,因此没有当前路由。
所以我认为简短的回答是:你做不到。
您需要使用Em.get
。有时直接访问属性有效,但有时它不会(取决于对象的结构)。
console.log(Em.get(this, 'currentRouteName'));
或
console.log(this.get('currentRouteName'));