Как использовать ngSwitch с * ngFor в Angular 6 - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть карта с динамическими c ключами и значениями

public featureData = new Map<string, string>();

Пары значений ключей будут следующими (могут присутствовать другие значения Dynami c)

[
  {"name" : "Bangalore"},
  {"type" : "city"},
  {"lat" : "12.9716"},
  {"lon" : "77.5946"}
]

Чтобы отобразить эти данные в HTML, я использовал следующий код

<div class="modal-body">
 <div class="form-group">
  <h4>
   <ol>
    <li *ngFor="let feature of this.featureData | keyvalue"> {{ feature.key }} : <input type="text" class="custom-field form-control form-control-sm form-control form-control-sm-sm"  (change)="updateAnyHashMap(this.featureData, feature.key, $event.target.value)" autocomplete="off" value="{{ feature.value }}"> </li>
   </ol>
  </h4>
 </div>
</div>

И приведенный выше код дает мне следующий вывод

enter image description here

Но мне нужно отключить поля lat и lon , используя ngSwitch . Так что я могу получить вывод следующим образом

enter image description here

1 Ответ

1 голос
/ 21 апреля 2020

Я не понимаю, почему вы хотите использовать ngSwitch, когда вы можете сделать это, используя атрибут disabled. Я не думаю, что вы можете использовать ngSwitch в этом случае

Поскольку нам не с чем сравнивать, я непосредственно сравниваю значения ключа

Измените input на

<input type="text" class="custom-field form-control form-control-sm form-control form-control-sm-sm"  (change)="updateAnyHashMap(this.featureData, feature.key, $event.target.value)" autocomplete="off" value="{{ feature.value }}" [disabled]="feature.key === 'lat' || feature.key === 'lon'">

Короче говоря, я добавил следующий атрибут

[disabled]="feature.key === 'lat' || feature.key === 'lon'"
...