Создайте директиву Debounce, где я в конечном итоге ограничу количество событий click, или проблема, с которой вы сталкиваетесь, заключается в том, что у моей кнопки было событие send раньше ... Например:
<button class="btn btn-light btn-block" type="submit" [hidden]="formCadastrohabilitado">
<i class="material-icons center align-middle ">
fast_forward
</i> INICIAR
</button>
И он с директивой было так:
<button passeDebounceClick (debounceClick)="" [debounceTime]="500" class="btn btn-light btn-block" [hidden]="formCadastrohabilitado">
<i class="material-icons center align-middle ">
fast_forward
</i> INICIAR
</button>
debounce-click-directive.directive.ts:
import {Directive, HostListener, OnInit, Output, EventEmitter, Input} from '@angular/core';
import {Subject, Subscription} from 'rxjs';
import {debounceTime} from 'rxjs/operators';
@Directive({
selector: '[passeDebounceClick]'
})
export class DebounceClickDirectiveDirective implements OnInit {
@Output() debounceClick = new EventEmitter();
@Input() debounceTime = 500;
private clicks = new Subject();
private subscription: Subscription;
constructor() {
}
ngOnInit() {
this.clicks
.pipe(debounceTime(this.debounceTime))
.subscribe(e => this.debounceClick.emit(e));
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
@HostListener('click', ['$event'])
clickEvent(event) {
event.preventDefault();
event.stopPropagation();
this.clicks.next(event);
}
}
Я просто хотел бы отправить форму, но с Debounce не удваивать нажмите