Я пытаюсь добиться повторного отображения индикатора загрузки при маршрутизации на тот же компонент.
html:
<div *ngIf="car$ | async as car; else loadingCar">
Selected {{car}}
</div>
<ng-template #loadingCar>loading...</ng-template>
<div>
<a routerLink="/cars/bmw">
<button class="button">BMW</button>
</a>
<a routerLink="/cars/mercedes">
<button class="button">Mercedes</button>
</a>
<a routerLink="/cars/audi">
<button class="button">Audi</button>
</a>
<a routerLink="/cars/dacia">
<button class="button">Dacia</button>
</a>
</div>
ts
export class CarsComponent implements OnInit {
car$: Observable<string>;
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.car$ = this.route.paramMap.pipe(
map(params => params.get("carBrand")),
delay(2000)
);
}
}
Это работает в первый раз на компоненте, но как только вы нажимаете на другой автомобиль, он показывает предыдущий, пока задержка не будет закончена
Я сделал Stackblitz для простого тестирования: https://stackblitz.com/edit/angular-access-url-params-subscription-nxe3cw