Как изменить атрибут объекта в ngFor? - PullRequest
0 голосов
/ 07 ноября 2019

Я начинаю изучать угловой и столкнулся со следующей ситуацией:

<div class="container mt-5 mb-5">
    <h3>What is the disease?</h3>
    <div class="container" >
        <div class='col-2' *ngFor="let disease of diseases;let i= index"> 
              <div class="form-check">
                  <input type="checkbox" class="form-check-input"  [(ngModel)]="paciente.disease" name="inlinecheckbox{{i}}" id="inlinecheckbox{{i}}" >
                  <label class="form-check-label" for="inlinecheckbox{{i}}">{{disease}}</label>
                </div>
        </div>
       <p *ngIf="pacient.disease==true && disease=='fever'">
          <input type="radio" name="high">High Fever
          <input type="radio" name="Average">Average Fever
          <input type="radio" name="low">Low Fever
       </p>
    </div>
  </div>

В основном я пытаюсь checkbox для каждого заболевания, и каждый раз, когда я нажимаю, я изменяю значение в соответствующем атрибуте. в пациенте и откройте другое диалоговое дерево.

Это элемент управления класса:

patient:Patient; 
diseases=["fever","faintness","tiredness"];

, и это модель:

export class Patient{
  fever:boolean
  faintness:boolean
  tiredness:boolean
}

Как я делаютеперь каждый раз, когда я нажимаю на опцию, все отмечены. Как решить и возможно ли решить так, как я следую?

1 Ответ

0 голосов
/ 07 ноября 2019

Я бы попробовал это:

<div class="container mt-5 mb-5">
    <h3>What is the disease?</h3>
    <div class="container" >
        <div class='col-2' *ngFor="let disease of diseases;let i= index"> 
              <div class="form-check">
                  <input type="checkbox" class="form-check-input"  [(ngModel)]="patient[disease]" name="inlinecheckbox{{i}}" id="inlinecheckbox{{i}}" >
                  <label class="form-check-label" for="inlinecheckbox{{i}}">{{disease}}</label>
                </div>
        </div>
       <p *ngIf="patient[disease]==true && disease=='fever'">
          <input type="radio" name="high">High Fever
          <input type="radio" name="Average">Average Fever
          <input type="radio" name="low">Low Fever
       </p>
    </div>
  </div>

в вашем классе не существует атрибута disease, вместо этого вы, вероятно, захотите сделать patient[disease]

, например, если disease из diseases равно 'fever', тогда ваш вызов логической переменной будет patient['fever'], что соответствует patient[disease] и patient.fever

...