如何在ngFor中更改对象的属性?

时间:2019-11-06 23:16:25

标签: angular typescript angular-directive

我开始研究角度问题,并遇到以下情况:

<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 :(得分:0)

我会尝试:

<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

相同