Sto costruendo un'app Angular 2 con la versione beta.8.
In questa app ho un componente che implementa OnInit.
In questo componente ho la funzione ngOnInit, ma la funzione ngOnInit non viene mai chiamata.Angular 2 ngOnInit non chiamato
import { Component, OnInit } from 'angular2/core';
@Component({
templateUrl: '/app/html/overview.html'
})
export class OverviewComponent implements OnInit {
ngOnInit() {
console.log('ngOnInit');
}
}
Il Routing del app:
@RouteConfig([
{
path: '/overview',
name: 'Overview',
component: OverviewComponent
},
{
path: '/login',
name: 'Login',
component: LoginComponent
},
{
path: '/register',
name: 'Register',
component: RegisterComponent,
useAsDefault: true
}
])
c'è un controllo per vedere se l'utente è già connesso all'interno della LoginComponent e RegisterComponent.
Se l'utente ha effettuato l'accesso, i componenti reindirizzano a Panoramica utilizzando: router.navigate(['Overview'])
.
Se utilizzo il percorso Panoramica come predefinito, vedo ngOnInit all'interno della console.
Quindi il modo in cui reindirizzo la mia pagina sembra essere il problema.
Come si può reindirizzare alla pagina Panoramica e chiamare la funzione ngOnInit?
Sia il RegisterComponent
e l'uso LoginComponent
ngOnInit() {
this._browser.getStorageValue('api_key', api_key => {
if (api_key) {
this._browser.gotoMain();
}
})
}
Browser è una classe in cui posso conservare codice specifico browser. Questa è la funzione gotoMain:
gotoMain() {
this._router.navigate([this._browser.main]);
}
this._browser.main
è solo una stringa in questo caso 'Panoramica'.
Avete fatto in modo che '' OverviewComponent funziona? Se sì, anche se non si importa 'OnInit' e implementa' OnInit', 'ngOnInit' funzionerà. – micronyks
@micronyks Ho aggiunto un 'message: string = 'test'' a OverviewComponent e ho provato a visualizzarlo nella vista con' {{message}} 'e ha funzionato .. – VincentKen
Oh! In tal caso ho bisogno di vedere il tuo codice Okay, prova a rimuovere quello che ho suggerito e vedi se funziona! – micronyks