Angular 2 ngOnInit no llamado
Estoy creando una aplicación Angular 2 con la versión beta.8.
En esta aplicación tengo un componente que implementa OnInit.
En este componente tengo la función ngOnInit, pero la función ngOnInit nunca se llama.
import { Component, OnInit } from 'angular2/core';
@Component({
templateUrl: '/app/html/overview.html'
})
export class OverviewComponent implements OnInit {
ngOnInit() {
console.log('ngOnInit');
}
}
El enrutamiento de la aplicación:
@RouteConfig([
{
path: '/overview',
name: 'Overview',
component: OverviewComponent
},
{
path: '/login',
name: 'Login',
component: LoginComponent
},
{
path: '/register',
name: 'Register',
component: RegisterComponent,
useAsDefault: true
}
])
Hay una comprobación para ver si el usuario ya ha iniciado sesión dentro de LoginComponent y RegisterComponent.
Si el usuario ha iniciado sesión, los componentes redirigen a Descripción general utilizando:router.navigate(['Overview'])
.
Si uso la ruta Visión general como predeterminada, veo ngOnInit dentro de la consola.
Entonces, la forma en que redirijo mi página parece ser el problema.
¿Cómo se puede redirigir a la página Descripción general y llamar a la función ngOnInit?
AmbosRegisterComponent
y elLoginComponent
utilizar
ngOnInit() {
this._browser.getStorageValue('api_key', api_key => {
if (api_key) {
this._browser.gotoMain();
}
})
}
El navegador es una clase en la que almaceno el código específico del navegador. Esta es la función gotoMain:
gotoMain() {
this._router.navigate([this._browser.main]);
}
this._browser.main
es solo una cadena en este caso 'Descripción general'.