请记住,我可能会采取错误的方式,所以如果有更简单的方法,请告诉我。
我有一个数组:
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"
s,但我也想将[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;
}
}
您可以将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 Link:https://stackblitz.com/edit/angular-select-switch-selected-lysrup?file=src/app/app.component.html