hY8*_*Xib 5 javascript angular2-routing angular
我正在尝试使用新路由器为我的Angular 2应用程序设置身份验证.有人建议尝试以下方法:
constructor (private _router: Router) {}
ngOnInit(){
this._router.subscribe(
next => {
if (!userIsLoggedInOrWhatever) {
this._router.navigate(['Login']);
}
}
)
}
Run Code Online (Sandbox Code Playgroud)
然而,这个问题是这会导致打字稿错误
(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
})
}
Run Code Online (Sandbox Code Playgroud)
原版的
该Router课程有一个EventEmitter changes你可以订阅:
ngOnInit(){
this._router.changes.subscribe(
next => {
if (!userIsLoggedInOrWhatever) {
this._router.navigate(['Login']);
}
}
)
}
Run Code Online (Sandbox Code Playgroud)
有关如何获取上一个路线的信息,请参阅如何在Angular 2中检测路线变化?(pairwise())
| 归档时间: |
|
| 查看次数: |
4787 次 |
| 最近记录: |