请记住,我可能会以错误的方式进行操作,因此,如果有更简便的方法,请告诉我。
我有一个数组:
state: string;
states = [
{name: 'Arizona', code: 'AZ', active: true},
{name: 'California', code: 'CA', active: false},
{name: 'Colorado', code: 'CO', active: false}
];
我正在使用<select>
元素来使用<option>
选择*ngFor="let state of states"
,但是我也想将[select]
属性设置为所选的任何一个。
我正在考虑使用switch
语句来测试是否设置了每个状态,并返回true以激活[selected]
属性。但是,我想知道是否有可能在for
中使用switch
循环来实际生成case
选项吗?
例如:
switchMe(name: string) {
switch(name) {
for (let i = 0; i < this.states.length; i++) {
case this.states[i].name:
return true;
}
}
}
否则,我的开关将如下所示:
switchMe(name: string) {
switch(name) {
case 'Arizona':
case 'California':
case 'Colorado':
return true;
}
}
答案 0 :(得分:2)
您可以将select
属性设置为state.active
,如下所示:
<select>
<option disabled>Make selection</option>
<option value={{state.name}} *ngFor="let state of states" [selected]="state.active||false">
{{state.name}}
</option>
</select>
Stackblitz链接:https://stackblitz.com/edit/angular-select-switch-selected-lysrup?file=src/app/app.component.html