Я пытаюсь создать защиту, которая проверяет, отображается ли значение параметра маршрута в списке местоположений (который находится в хранилище NgRX).
Проблема заключается в том, что при фильтрации местоположений я получаю толькопервый результат из потока locations.length
возвращает 0, а Observable закрывается.Не могли бы вы как-нибудь исправить меня?Места, вероятно, еще не загружены.Я хочу дождаться их загрузки в магазин и только после этого проверить параметр.
canActivateChild(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {
return this.locationFacade.locations$.pipe(
filter(locations => !!locations.length),
map((locations: Array<Location>) => locations.some(x => x.name === next.params['locationName']))
);
}