web-dev-qa-db-ja.com

Angular 4文字列の配列

リアクティブフォームを使用しています。2つの質問があります。ユーザーが直接変更できる入力として文字列の配列を使用したい、このようなデータモデルがあります

export class Work {
    toDos: string[];  
}

Q1:入力をプリミティブの配列に直接バインドすることは問題ありませんか、それともプロパティ名を持つオブジェクトの配列でtoDosに変換し、常にコントロールを使用する必要がありますか?

Q2:いくつか考えてみましたが、それを機能させる簡単な方法が見つかりません:

<div *ngFor="let item of toDos;let index = index;trackBy:trackByIndex;">
   <input [(ngModel)]="toDos[index]" placeholder="item" name="Word{{index}}">
</div>

 <button (click)="addItem()" type="button">Add an 
Item</button>
<div *ngFor="let item of toDos">
  <label>{{item}}</label>
</div>

Component.tsで

toDos: string[] =["Todo1","Todo2","Todo3"];
trackByIndex(index: number, obj: any): any {
   return index;
 }
 addItem() {
   this.toDos.Push('0');
 }

Add関数は正常に機能しますが、入力がバインドされておらず、エラーも発生しません。入力の値を変更できますが、{{item}}に反映されません。

2
q.b

次のように単純な配列を作成します。

yourArray= new Array();

次のように、配列のプッシュ機能を使用して、要素を簡単に追加できます。

yourArray.Push(data);
2
Omkar Dixit