Angular · Senior · Pytanie 64 z 75
Jak pokazać globalny pasek postępu podczas ładowania leniwej trasy?
inject(Router).events.subscribe((e) => {
if (e instanceof NavigationStart) this.loading.set(true);
if (e instanceof NavigationEnd || e instanceof NavigationCancel || e instanceof NavigationError)
this.loading.set(false);
});- ✓Poprawna odpowiedź: Nasłuchiwać zdarzeń routera i zatrzymywać pasek na
NavigationEnd,NavigationCanceliNavigationError - 2Zatrzymywać tylko na
NavigationEnd - 3Opakować
<router-outlet>w@defer
Wyjaśnienie
Jeśli zignorujesz anulowanie i błąd, zablokowany guard lub nieudany chunk zostawią spinner na zawsze.