2017-09-22 8 views
1

スマートでダムなコンポーネントがあり、フォームがイベントエミッタから2回送信されています。私はこれを数日間行っており、それを理解することはできません。ダム(プレゼンテーション)コンポーネントの反応形式が2回送信される

私はすべてのロジックをスマートコンポーネントに保存しようとしています。また、このパターンのベスト・プラクティスに対する批判も感謝しています。私は(提出する)イベントはすでに二回、それをトリガする角度で定義されていると思い

https://stackblitz.com/edit/reactive-form-emitter?file=app%2Fapp.component.ts

答えて

1

フォームは、デフォルトのイベント名「Angular」で、定義したイベントハンドラに関係なく呼び出されているイベント名「submit」のため、2回送信されます(ngSubmit)。

は、例えば、イベントに "submit2" の名前を変更し、重複した投稿を削除するには、それは一度だけ提出する:

アプリ-dumb.html:

<form [formGroup]="myForm" (ngSubmit)="submit2.emit(myForm)"> 
    name: 
    <input type="text" formControlName="name"> 
    <button> 
     submit 
    </button> 
</form> 

アプリ-dumb.ts:

@Output() submit2: EventEmitter<FormGroup> = new EventEmitter<FormGroup>(); 

デモ:

https://stackblitz.com/edit/reactive-form-emitter-wf2lhd

+1

ありがとうございます。私は新しいことが何か共通していなければならなかった、私はちょうどインターネット上でそれを見つけることができませんでした。おとこ。だからシンプルに、私はそれがキーワード機能であることを認識しませんでした。ありがとう@rotemx! – FussinHussin

関連する問題