Angular 2 でバグを見つけたかもしれないし、見つけなかったかもしれません。ユーザーが選択したアイテムを継続的に追加できるようにします。
だから私がしたいのは、下部の選択ボックスを空の値にリセットすることですが、ngModel の値を 0 (または空) に戻そうとしても、下部の選択ボックスは以前に選択したオプションのままです。
@Component({
selector: 'my-app',
template: `
<div *ngFor="let a of arr">
<div *ngFor="let b of a.entities;let i = index">
<select class="form-control input-sm" [(ngModel)]="a.entities[i]">
<option *ngFor="let c of items" value="{{c}}">{{c}}</option>
</select>
</div>
<select class="form-control input-sm mb5" (change)="entitySelect(a)" [(ngModel)]="a.selected">
<option value="0">- Select -</option>
<option *ngFor="let c of items" value="{{c}}">{{c}}</option>
</select>
</div>
`,
})
export class App {
items:Array<string> = ['red','green','blue'];
constructor() {
this.arr = [{
entities: [],
selected: 0
}]
}
entitySelect(entity) {
entity.entities.push(entity.selected);
entity.selected = 0; // Revert bottom select box back to empty
}
}
https://plnkr.co/edit/PMzbgEtyd4DFhObu1UVz
もう1つの奇妙な点は、entity.selectedを0ではなく「青」に設定すると、最後の選択ボックスがデフォルトで青になりますが、最初の選択でのみです。それ以降の選択は、前のものと同じままです。