Задать вопрос
Ответы пользователя по тегу Angular
  • Как автоматически обновлять продакшн из папки dist при новом пуше?

    syamskoy
    @syamskoy
    pipelines в вашей VCS.
    Ответ написан
    Комментировать
  • Вложенный роутинг для интернет магазина на Angular 9 + ng-universal, как организовать?

    syamskoy
    @syamskoy
    Тоже искал ответ на этот вопрос, но так и не нашел какого-то решения из коробки. Сделал в итоге так:
    Роутинг:
    const routes: Routes = [
        {
            path: 'category', component: LayoutShopComponent, children: [
                {path: '**', component: CategoryListComponent},
            ]
        },
    ];


    В самом компоненте подписываюсь на изменение урла, и из урла уже достаю текущую категорию, что-то вроде этого:

    constructor(
            private route: ActivatedRoute
        ) {
            route.url.subscribe((data) => {
                this.child = data.map(value => value.path);
                const arraySize = data.length;
                if (arraySize > 0) {
                    this.parentSlug = data[arraySize - 1].path;
                }
            });
            this.loadData();
        }


    И в html просто ходим по категориям:
    <a routerLink="{{category.slug}}" class="text-body">{{category.name}}</a>


    Возможно, есть более удачные решения, но найти не удалось.
    Ответ написан
    3 комментария
  • Как guard должен работать с Observable?

    syamskoy
    @syamskoy
    Может лучше сохранять пользовательские данные или авторизационный токен в локалстораж, и проверку делать на его наличие?

    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
        const token = this.authService.getAuthorizationToken();
        if (token) {
          return true;
        }
    
        // not logged in so redirect to sign-in page with the return url
        this.router.navigate(['/account/sign-in'], { queryParams: { returnUrl: state.url }});
        return false;
      }


    Можно рассмотреть ситуацию, если пользователь сам заполнит эти поля фейковыми данными в локалстораже и пройдет на закрытую страницу. То ничего страшного не произойдет, т.к. ушедший запрос на получение данных на этой странице получит 401-ю ошибку от бэкенда (токен то фейковый), а значит хендлер-еррор затирает локалстораж и выкидывает юзера на авторизацию. Т.е. этот способ довольно безопасен.
    Ответ написан
    Комментировать
  • Как задать локаль в ангуляре?

    syamskoy
    @syamskoy Автор вопроса
    Локаль оказывается переключается, но ангуляр для currency всегда использует по умолчанию USD, не зависимо от локали. Но с версии 9, появилась возможность задать валюту по умолчанию:
    {provide: DEFAULT_CURRENCY_CODE, useValue: 'RUB'}
    Подробней тут: https://angular.io/api/common/CurrencyPipe

    Странно что никто с этим не сталкивался, и нигде нет об этом информации.
    Ответ написан