定义角度获取当前路径,而不是未定义

时间:2017-02-20 10:18:40

标签: angular typescript ng-admin

我有这段代码:

import { Router } from '@angular/router';

然后:

constructor(router: Router) {
    console.log(this.router.url);
}

当我加载页面时,它会首先告诉我URL是“/”

Unhandled Promise rejection: Error in ./BaPageTop class BaPageTop - inline template:22:4 caused by: Cannot read property 'url' of undefined ;

我想检查当前网址是否等于/login,否则会在构造函数中重定向到"/login"。我尝试使用window.location.href这样做,但它不起作用,因为URL没有改变parhaps?

1 个答案:

答案 0 :(得分:1)

根据您的构造函数代码,您永远不会将this.router设置为任何内容,因此它始终为undefined。默认情况下,将参数传递给构造函数时,它不会成为this的属性。您应该将代码更改为:

constructor(router: Router) {
    console.log(router.url);
}

或者,如果你真的想使用this.router(例如,如果你想在同一个班级的其他功能中使用路由器),你可以使用publicprivate声明参数时的关键字:

constructor(private router: Router) {
    console.log(this.router.url);
}