成分の配列に項目を追加するために、次のフォームを作成しました。 ユーザーが[新しい成分を追加]をクリックすると、空の成分がリストに追加されます。* ngForとngModelを使用してオブジェクトの配列を塗りつぶし
HTML:
<button md-button
(click)="addIngredient()">
<md-icon>add</md-icon> ADD
</button>
<div *ngFor="let ingredient of ingredients">
<md-form-field floatPlaceholder="never">
<input mdInput placeholder="NAME"
[(ngModel)]="ingredient.name" name="name">
</md-form-field>
<md-form-field floatPlaceholder="never" style="width: 80px">
<input mdInput placeholder="QUANTITY" type="number"
[(ngModel)]="ingredient.quantity" name="quantity">
</md-form-field>
</div>
TS:
addIngredient() {
// outputs real list
console.log(this.ingredients);
this.ingredients.push({
name: 'tt',
quantity: '12'
});
}
アプリが起動し、私はリストに新しい空の成分を追加するために "追加" をクリックします。 成分の名前と量を更新してから、もう一度「追加」をクリックして別の成分を追加します。
「追加」ボタンをクリックして別の成分を追加すると、私が追加したすべての成分のフォーム入力は、addIngredient()
メソッドで宣言した値に設定されます(すべての名前は 'tt' '12')コンソールログに実際のリストが表示されます。
この問題の原因は何ですか?