0
フォームが無効なときにstopPropagation()によってコールバックdoSearch()
が発生しないようにする必要があります。角2はngSubmitの伝播を停止できません
<form
[dirtyFieldsOnSubmit]="form"
(ngSubmit)="doSearch()"
#form="ngForm"></form>
指令コード:
import {Directive, Input, HostListener} from '@angular/core';
import {NgForm} from '@angular/forms';
@Directive({ selector: '[dirtyFieldsOnSubmit]' })
export class DirtyFieldsOnSubmitDirective {
@Input('dirtyFieldsOnSubmit') form: NgForm;
constructor() {
}
@HostListener('submit', ['$event'])
onSubmit(event) {
if(!this.form.valid) {
for (var i in this.form.controls) {
this.form.controls[i].markAsDirty();
}
//event.stopPropagation() not working
}
}
constructor() {
}
}
onSubmit(){} //イベントを削除してから試してください – Manish
もう少し良いことを説明できますか? – Baconbeastnz