我可以使用For循环生成Switch Case吗?

问题描述 投票:-2回答:1

请记住,我可能会采取错误的方式,所以如果有更简单的方法,请告诉我。

我有一个数组:

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;
        }
      }

Stackblitz

javascript angular typescript
1个回答
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 Link:https://stackblitz.com/edit/angular-select-switch-selected-lysrup?file=src/app/app.component.html

© www.soinside.com 2019 - 2024. All rights reserved.