@PatriotSY

Как правильно сделать этот компонент?

Создал компонент для авторизации в системе. В нем, после отправки формы и получения токена, происходит редирект.
submitForm() {
    this.blockButton = true;
    this.authService.signIn(this.signInForm.getRawValue()).subscribe(
        data => {
          this.authService.setAuthorizationToken(data);
          this.authService.updateCurrentMemberData();
        },
        error => {
          this.blockButton = false;
        },
        () => {
          this.router.navigate([this.authService.redirectUrl]);
        }
    );
  }


Понадобилась эта форма на другой странице (визард оформления заказа) - вставил его туда, но вот незадача: там мне не нужна эта переадресация. Как правильно создать этот компонент авторизации, что бы его можно было переиспользовать? Куда и как вынести переадресацию?
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
alex_romanov116
@alex_romanov116
Web-developer
Как вариант сделайте stub компонент,

1.по кнопке авторизоваться output auth, который эммитит событие клика ,все где используется этот компонент в родительском обрабатывайте как нужно
2. Можно усложнить output :
При клике по кнопке делать запрос в сервис
submitSubject = BehaviorSubject(null)
@Output() auth = this.submitSubject.pipe(switchMap( _ => this.auth.signin(this.form.value))

В шаблоне просто делать эмит в submitSubject.
P.s извиняюсь за псевдокод, пишу с телефона
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы