[英]Angular 2 typescript error when using subscribe function on new router (rc 1)
我正在尝试使用新路由器为我的Angular 2应用程序设置身份验证。 有人建议尝试以下方法:
constructor (private _router: Router) {}
ngOnInit(){
this._router.subscribe(
next => {
if (!userIsLoggedInOrWhatever) {
this._router.navigate(['Login']);
}
}
)
}
然而,这个问题是这会导致打字稿错误
(app.component.ts(47,22):错误TS2339:“路由器”类型上不存在属性“subscribe”。
这很奇怪,因为文档清楚地表明Router对象确实具有此功能。 我可以调用其他函数,如router.navigate(['/ url'])。 你们知道这可能是什么问题吗?
新的路由器
constructor(router:Router) {
router.events.subscribe(event:Event => {
if(event instanceof NavigationStart) {
}
// NavigationEnd
// NavigationCancel
// NavigationError
// RoutesRecognized
})
}
原版的
Router
类有一个您可以订阅的EventEmitter
changes
:
ngOnInit(){
this._router.changes.subscribe(
next => {
if (!userIsLoggedInOrWhatever) {
this._router.navigate(['Login']);
}
}
)
}
有关如何获取上一个路线的信息,请参阅如何在Angular 2中检测路线变化? ( pairwise()
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.