我可以使用For循环生成开关案例吗?

时间:2018-09-03 13:47:18

标签: javascript angular typescript

请记住,我可能会以错误的方式进行操作,因此,如果有更简便的方法,请告诉我。

我有一个数组:

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

Stackblitz

1 个答案:

答案 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