Я недавно обновил веб-приложение до angular 8, и все хорошо, за исключением странной ситуации. Я имею дело с Fingerprint2 и Angular8
Это приложение использует FingerPrint2.getV18 () для пометки уникального сессия при входе в систему. Мой шаблон разрешает и достигает компонента, однако в angular 7 представление будет обновляться при обработке ошибок. В настоящее время с angular 8 мне нужно обновить представление с помощью:
this.changeDetectorRef.detectChanges();
Как кто-либо из тел испытывал это в последнее время? Я немного изящный фанат кода, поэтому, если кто-то может мне помочь, это было бы замечательно.
Моя последовательность входа выглядит так на стороне службы:
login(email: string, password: string): Observable<AuthSession> {
return new Observable((observer: Observer<AuthSession>) => {
Fingerprint2.getV18({}, (fingerPrintResult: string) => {
const loginData: any = {
email: email,
password: password,
device: {
id: fingerPrintResult,
type: 'WEB',
model: navigator.userAgent
}
};
this.http.post<AuthSession>(`${this.environmentService.apiUrl}/v1/customer/login`, loginData)
.subscribe((authSession: AuthSession) => {
observer.next(authSession);
observer.complete();
}, (error: HttpErrorResponse) => {
observer.error(error);
observer.complete();
});
});
});
}
И мой компонент выглядит вот так:
this.authService.login(formData.email.toLowerCase(), formData.password)
.pipe(
finalize(() => {
this.isLoginSubmitting = false;
//HERE ITS NOT UPDATING THE VIEW
//this.changeDetectorRef.detectChanges();
}),
)
.subscribe((session: AuthSession) => {
this.doLoginSuccess(session);
}, (errorResponse: HttpErrorResponse) => {
console.log('error at login attempt!');
this.errorMessage = errorResponse.error.errorDescription;
//HERE ITS NOT UPDATING THE VIEW
//this.changeDetectorRef.detectChanges();
});
Кажется таким тривиальным ... Я что-то здесь не так делаю?
Спасибо