0
角度2のシナリオを試しています。そこでは、定義済みリストから入力されるドロップダウン内のヒーローにスーパーパワーを選択できます。そして、私はどんな2つのスーパーヒーローにも同じスーパーパワーを持たせたくありません。角度のオプション値をフィルタリングする
私は以下のように試しました。
HTML:
<div class="form-group">
<label>Hero One</label>
<select (ngModelChange)="onChange($event)" class="form-control" name="sel">
<option *ngFor="let pow of powers">
<span *ngIf="check(pow)">{{pow}}</span>
</option>
</select>
</div>
<div class="form-group">
<label>Hero Two</label>
<select (ngModelChange)="onChange($event)" class="form-control" name="sel1">
<option *ngFor="let pow of powers">
<span *ngIf="check(pow)">{{pow}}</span>
</option>
</select>
</div>
<div class="form-group">
<label>Hero Three</label>
<select (ngModelChange)="onChange($event)" class="form-control" name="sel2">
<option *ngFor="let pow of powers">
<span *ngIf="check(pow)">{{pow}}</span>
</option>
</select>
</div>
Component.ts
export class HeroFormComponent {
powers = ['Really Smart', 'Super Flexible', 'Super Hot', 'Weather Changer'];
array = [];//storing the previously selected superpowers
check(p) {
var condition = this.array.length;
for (var i = 0; i <= this.array.length; i++) {
if (condition != 0) { //dont check if array is empty, just return true
if (p === this.array[i]) { //return false if the superpower is present
return false;
}
//return true, since power doesnt belong to anyother hero
return true;
}
return true;
}
}
onChange(p: string) {
this.array.push(p);//push the selected values in this array;
console.log(this.array);
}
}
私は、適切ngForまたはngIfを使用していないあなたは私が間違っているのかを指し示すしてくださいすることができ、またはどのように私ができると思いますそれをやる。私の部分については