私はAngular 2を初めて使用しており、1つのAngular 2コンポーネントに2つのフォームを持つことができます。以下は私のform.component.htmlの外観です。同じAngular2コンポーネントに2つのフォームを持たせることができます
<div>
<span>Forms Using ngModel Directive</span>
<form #form="ngForm" (ngSubmit)="submit(form.value)">
<div>
<label>Firstname:</label>
<input type="text" name="firstname" ngModel>
</div>
<div>
<label>Lastname:</label>
<input type="text" name="lastname" ngModel>
</div>
<div>
<label>Street:</label>
<input type="text" name="street" ngModel>
</div>
<div>
<label>Zip:</label>
<input type="text" name="zip" ngModel>
</div>
<div>
<label>City:</label>
<input type="text" name="city" ngModel>
</div>
<button type="submit">Submit</button>
</form>
<pre>
{{form.value | json}}
</pre>
<h4>Submitted</h4>
<pre>
{{value | json }}
</pre>
<span>Same Form using ngModelGroup & ngModel Directive(Notice Difference in the JSon)</span>
<form #form1="ngForm" (ngSubmit)="submit(form1.value)">
<div ngModelGroup="name">
<label>Firstname:</label>
<input type="text" name="firstname1" ngModel>
<label>Lastname:</label>
<input type="text" name="lastname1" ngModel>
</div>
<div ngModelGroup="address">
<label>Street:</label>
<input type="text" name="street1" ngModel>
<label>Zip:</label>
<input type="text" name="zip1" ngModel>
<label>City:</label>
<input type="text" name="city1" ngModel>
</div>
<button type="submit">Submit</button>
</form>
<pre>
{{form1.value | json}}
</pre>
<h4>Submitted</h4>
<pre>
{{value | json }}
</pre>
あなたは上記を参照した場合、私は同じコンポーネント内部の2つの形式があります。今ではそれぞれのフィールドに値を入力すると、JSONが適切に作成されているのがわかります...しかし、どちらかのフォームを送信すると、送信されたJSONは両方のフォームで同じように作成されます。これは、HTMLページには、Ajaxを一切含まないフォームが1つしか含まれていないことが原因です。誰でもこのことを私に説明してもらえますか?
https://plnkr.co/edit/ZoCOzlCNa82ugbYiXyjK?p=preview
は、私はあなたが2つの要求を作成し、より良いを分離するために、その独自の機能 – mayur
で各フォームのonSubmitを呼び出す必要があり、角度2とのない何もそう思うvalue1をしますそれを2つのコンポーネントに変換します。簡単にテストすることができ、クリーナーです。 –
あなたが望むソリューションかもしれないhttps://plnkr.co/edit/yzMbR85Pliw1AMcqiYyE?p=preview – mayur