ngx-loading - проблема с this.loading = false - PullRequest
0 голосов
/ 11 марта 2020

Я использую ngx-загрузку в моем HTML, this.loading = true отлично работает с функцией sendMail (), но по какой-то причине после сообщения об успешном выполнении загрузчик не исчезает, как будто он не распознает это .loading = false. Буду признателен за любую помощь, так как я не понимаю, что здесь не так.

<div class="card-reinfort"> <ngx-loading [show]="loading" [config]="{ backdropBorderRadius: '3px' }"></ngx-loading></div>

И компонент:

@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'ma-reinforcement',
templateUrl: './reinforcement.component.html'
})
export class ReinforcementComponent {
loading = false;
reinforcementList$: Observable<Array>;
@ViewChild(ReinforcementTableComponent, { static: false }) table: 
ReinforcementTableComponent;

constructor(private readonly reinforcementService: ReinforcementService, private readonly 
toastrService: ToastrService) {
this.reinforcementList$ = this.reinforcementService.getAll();
}

onSaveEvent(reinforcementItem: ReinforcementItem): void {
this.reinforcementList$ = this.reinforcementService.save(reinforcementItem);
}

sendMail(): void {
this.loading = true;
this.reinforcementService.sendMail('Export du renfort sur la ligne de caisse', 'Message')
    .subscribe(result => {
        this.loading = false;
        this.toastrService.success('L\export a bien été envoyé', 'Success');
    },
        error => {
            this.toastrService.error('L\'email n\'a pas été envoyé', 'Erreur');
        }
    );

    }
   }

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Исправлено, добавив this.ref.detectChanges (); после this.loading = false

0 голосов
/ 11 марта 2020

Добавьте *ngIf="loading", чтобы отобразить его, только если loading истинно.

Попробуйте так:

<ngx-loading *ngIf="loading" [show]="loading" [config]="{ backdropBorderRadius: '3px' }"></ngx-loading>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...