Saya menggunakan sudut 2 rc1 dan router baru @angular/router
Dalam komponen aplikasi saya memiliki bagian nav dan outlet router
<nav>
<a *ngIf="auth?.userName == null" [routerLink]="['/login']">Login</a>
<a *ngIf="auth?.userName != null" (click)="logout()">Logout</a>
{{auth?.userName}}
</nav>
<router-outlet></router-outlet>
Saya menyuntikkan layanan login ke dalam komponen aplikasi dan berlangganan acara di ngOnInit
ngOnInit() {
this.loginService.loginSuccess.subscribe(this.loginSuccess);
}
ngOnDestroy() {
this.loginService.loginSuccess.unsubscribe();
}
private loginSuccess(res: IAuthResponse) {
this.auth = res;
}
ketika saya menavigasi ke halaman/komponen rute '/ login' saya, layanan login saya disuntikkan dan layanan login mendefinisikan suatu peristiwa
@Output() loginSuccess = new EventEmitter<IAuthResponse>();
dan setelah berhasil login di layanan saya, layanan login memunculkan acara tersebut
this.loginSuccess.next(response);
Saya dapat menyetel breakpoint di komponen aplikasi pada loginSucess berlangganan dan data diteruskan, namun 'ini' tidak ditentukan.
private loginSuccess(res: IAuthResponse) {
this.auth = res; //this is undefind
}
bagaimana cara memperbarui komponen aplikasi dari peristiwa yang dipicu dari layanan yang digunakan dalam komponen yang dihosting di outlet router