В AngularJs я использовал класс ng-submit для проверки формы, но он не отображается в Angular при отправке формы. Я написал директиву, которая добавляет класс, отправленный в форму, и удаляет его при сбросе
@Directive({
selector: '[appForm]'
})
export class FormDirective implements OnDestroy {
private subscription: Subscription;
constructor(el: ElementRef, form: NgForm) {
this.subscription = form.ngSubmit.subscribe(() => {
el.nativeElement.classList.add('submitted');
});
form.onReset = () => {
el.nativeElement.classList.remove('submitted');
};
}
ngOnDestroy() {
if (this.subscription) {
this.subscription.unsubscribe();
}
}
}
Это прекрасно работает, когда вы сбрасываете форму с помощью кнопки сброса. Проблема, с которой я сталкиваюсь, заключается в том, что когда мне нужно сбросить значения, отличные от установки нулевых привязок, мне нужно сбросить форму с помощью метода resetForm ngForm, но это не вызывает метод onReset, и я не могу найти способ нажатьв форму сбрасывается таким образом.
https://stackblitz.com/edit/angular-u2rlx9