在新路由器上使用订阅函数时出现Angular 2 typescript错误(rc 1)
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:类型"Router"上不存在属性"subscribe"。
这很奇怪,因为文档清楚地表明Router对象确实具有此功能。我可以调用其他函数,比如router.navigation(['/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()
)
相关文章:
- Angular 2.0 with JavaScript or TypeScript?
- Typescript编译器错误,Angular 1.5组件应为分号
- 将typescript函数访问到angular中
- 在新路由器上使用订阅函数时出现Angular 2 typescript错误(rc 1)
- Angular 2中的@Angular包缺少TypeScript类型定义
- 让typescript与facebook登录为Angular 2项目工作
- 将ng2图表添加到Typescript/ Angular 2项目引用路径和.js文件的路径不正确
- 我只能将TypeScript用于Angular应用程序的部分吗
- 在Typescript中对array/JONS进行迭代,以构建带有子菜单的Angular 2模板菜单
- 使用由angular指令中的typescript生成的控制器
- Typescript+Angular公开服务方法
- TypeScript Angular 2 响应订阅
- Typescript + Angular
- typescript:angular.d.ts用ng.IPromise防御打字
- 如何在Web API(MVC)中将多个变量从typescript(angular.js)传递给Controller
- Typescript/Angular 2中的异步函数
- Typescript Angular ui bootstrap modal
- Typescript Angular的访问参数,应该由service交付
- typescript + angular: factory with dependencies error
- 使用Ionic + TypeScript + Angular的混合型应用