Angular 2 ngOnInit heißt nicht
Ich erstelle eine Angular 2-App mit Version Beta.8.
In dieser App habe ich eine Komponente, die OnInit implementiert.
In dieser Komponente habe ich die Funktion ngOnInit, aber die Funktion ngOnInit wird nie aufgerufen.
import { Component, OnInit } from 'angular2/core';
@Component({
templateUrl: '/app/html/overview.html'
})
export class OverviewComponent implements OnInit {
ngOnInit() {
console.log('ngOnInit');
}
}
Das Routing der App:
@RouteConfig([
{
path: '/overview',
name: 'Overview',
component: OverviewComponent
},
{
path: '/login',
name: 'Login',
component: LoginComponent
},
{
path: '/register',
name: 'Register',
component: RegisterComponent,
useAsDefault: true
}
])
Es wird geprüft, ob der Benutzer bereits in der LoginComponent und der RegisterComponent angemeldet ist.
Wenn der Benutzer angemeldet ist, leiten die Komponenten mithilfe von: @ zur Übersicht urouter.navigate(['Overview'])
.
Wenn ich die Route "Übersicht" als Standardeinstellung verwende, wird in der Konsole "ngOnInit" angezeigt.
So scheint die Art und Weise, wie ich meine Seite umleitung, das Problem zu sein.
Wie kann ich zur Übersichtsseite umleiten und die Funktion ngOnInit aufrufen?
BeideRegisterComponent
und dieLoginComponent
verwende
ngOnInit() {
this._browser.getStorageValue('api_key', api_key => {
if (api_key) {
this._browser.gotoMain();
}
})
}
Browser ist eine Klasse, in der ich browserspezifischen Code speichere. Dies ist die gotoMain-Funktion:
gotoMain() {
this._router.navigate([this._browser.main]);
}
this._browser.main
ist in diesem Fall nur ein String 'Overview'.