Прядильщик коврика не показан

Я хочу показать счетчик при обработке входа в систему.

login.component.ts:

constructor(public spinner: SpinnerComponent) { }

  ngOnInit() {
    this.spinner.showSpinner = false;
  }

  login() {
    this.spinner.showSpinner = true;
    this.userService.login(this.username, this.password).subscribe(loginResponse => {
      ...
      this.spinner.showSpinner = false;
    });
  }

spinner.component.ts:

export class SpinnerComponent {

  @Input()
  showSpinner;

  constructor() { }
}

spinner.component.html:

<div *ngIf = "showSpinner">
    <mat-spinner [mode] = "indeterminate"></mat-spinner>
</div>

Кажется, что связь между компонентом входа в систему и компонентом счетчика для установки значения showSpinner неверна.

Есть идеи, как показать спиннер?

вы можете показать мне код login.component.html?

Krishna Rathore 18.08.2018 14:49

почему вы вводите компонент, как если бы это была служба? конструктор (публичный счетчик: SpinnerComponent)

wFitz 18.08.2018 14:51

Неправильно внедрять такой компонент, как этот конструктор (публичный счетчик: SpinnerComponent) {}

malbarmavi 18.08.2018 14:52
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
3
1 501
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Не используйте @Вход() со свойством showSpinner

просто создайте showspinner как логическое,

showSpinner: boolean;

Декоратор @Вход() означает, что вы передаете значение декоратором компонентов

login.component.ts

isWaiting: boolean = false;
constructor() { 
}
ngOnInit() { 
}

login() {
  this.isWaiting = true;
  this.userService.login(this.username, 
    this.password).subscribe(loginResponse => {
    ...
    this.isWaiting = false;
  });
}

в html

<mat-spinner *ngIf = "isWaiting" [mode] = "'indeterminate'"> 
</mat-spinner>
Ответ принят как подходящий

Вы просто добавляете компонент прядильщика для входа в html следующим образом

login.component.html

<app-spinner [showSpinner] = "showSpinner"></app-spinner>

login.component.ts:

  public showSpinner:bollean=false; 
  ngOnInit() {
    this.showSpinner = false;
  }

  login() {
    this.showSpinner = true;
    this.userService.login(this.username, this.password).subscribe(loginResponse => {
      ...
      this.showSpinner = false;
    });
  }

Спасибо! Теперь работает. Так что мне нужно добавить прядильщик приложения в html всех компонентов, которые я хотел бы показать прядильщику? Есть ли другой способ добавить его в app.component.html?

RAL 18.08.2018 15:40

да, вы можете создать службу и переключить состояние showSpinner из этой службы, я обновлю свой ответ и включу этот пункт @RAL

malbarmavi 18.08.2018 15:44

Другие вопросы по теме