javascript - que - Error de texto mecanografiado angular 2 cuando se utiliza la función de suscripción en un enrutador nuevo(rc 1)
que es un observable angular (1)
Estoy intentando configurar la autenticación para mi aplicación Angular 2 con el nuevo enrutador. Alguien sugirió probar lo siguiente:
constructor (private _router: Router) {}
ngOnInit(){
this._router.subscribe(
next => {
if (!userIsLoggedInOrWhatever) {
this._router.navigate([''Login'']);
}
}
)
}
Sin embargo, este problema es que esto da como resultado el error de mecanografiado
(app.component.ts (47,22): error TS2339: la propiedad ''subscribe'' no existe en el tipo ''Router''.
Esto es extraño porque la documentación muestra claramente que un objeto Router tiene esta función. Puedo llamar a otras funciones como enrutador.navigate ([''/ url'']). ¿Ustedes tienen una idea de cuál podría ser el problema?
nuevo enrutador
constructor(router:Router) {
router.events.subscribe(event:Event => {
if(event instanceof NavigationStart) {
}
// NavigationEnd
// NavigationCancel
// NavigationError
// RoutesRecognized
})
}
original
La clase Router
tiene un EventEmitter
que puedes suscribirte:
ngOnInit(){
this._router.changes.subscribe(
next => {
if (!userIsLoggedInOrWhatever) {
this._router.navigate([''Login'']);
}
}
)
}
Para saber cómo obtener la ruta anterior, vea ¿Cómo detectar un cambio de ruta en Angular 2? ( pairwise()
)