В качестве кода ниже, который работает в браузере рабочего стола.Тем не менее, это не работает в мобильном браузере.Я нахожу это из-за subject.next () не удалось успешно отправить.
https://stackblitz.com/edit/angular-nmpadm (мои коды)
ToastService.ts
public subject = new Subject<ToastModel>();
constructor() {}
getToast = (toastId?: string): Observable<any> => {
return this.subject.asObservable();
};
success(message: string, keepAfterRouteChange = false) {
this.toast(ToastType.Success, message, keepAfterRouteChange);
}
toast(type: ToastType, message: string, keepAfterRouteChange = false)
{
this.keepAfterRouterChange = keepAfterRouteChange;
// I think is this code doesn't work
this.subject.next(<ToastModel>{ type: type, message: message });
}
toast.component.ts
constructor(private toastService: ToastService) {
}
ngOnInit() {
this.toastService.getToast().subscribe((toast: ToastModel) => {
// because in here can not catch the data from subject.next()
console.log('toast')
if(!toast) {
this.toasts = [];
return;
}
this.toasts.push(toast);
})
this.toastService.subject.subscribe((toast: ToastModel) => {
console.log(toast);
})
}
Над этими кодами работает в браузере настольного компьютера, однако в мобильном браузере он не работает
Странно, кто-нибудь может мне помочь?