无法读取Object.eval角度的undefined属性

时间:2019-10-01 00:30:58

标签: angular

我正在尝试从组合框中获取数据并在文本框中打印数据,例如根据用户ID,通过从组合框中选择用户ID在文本框中打印用户名,希望您能理解,并且它写得很好,我的英语不是很好

我尝试这个...

html组件

  <mat-select  [(ngModel)]="examen.rutPac" name="rutPac">
    <mat-option *ngFor="let pacientes of pacientes" name="rutPac" [value]="pacientes.rutPac">
      {{pacientes.rutPac}}
    </mat-option>

            <input matInput [(ngModel)]="selectedPaciente.nombrePac" #elementDescripcionControl="ngModel"
        type="text" name="NombrePac" placeholder="Nombre Paciente" maxlength="30" readonly>

ts分量


  getOnePaciente = (pac) => {
    this.dataService.getOnePaciente(pac.id).subscribe(
      (data: Paciente) => {
        this.selectedPaciente = data; 
        console.log('JSON DATA --->', data); 
      },
      error => {
        console.log(error);
      }
    );
  }

  getPacientes(): void {
    this.dataService
      .getPacientes()
      .then(pacientes => this.pacientes = pacientes);
  }

"the model"
   pacientes:Paciente[];

this is the error

2 个答案:

答案 0 :(得分:2)

您可以使用?将未定义的变量设为可选,这被 @Mostafa 指出为“ 安全导航”:

[(ngModel)]="selectedPaciente?.nombrePac"

赞:

 <input matInput [(ngModel)]="selectedPaciente?.nombrePac" #elementDescripcionControl="ngModel"
        type="text" name="NombrePac" placeholder="Nombre Paciente" maxlength="30" readonly>

?未分配的情况下,selectedPaciente可能有助于避免错误

*ngIf

<div *ngIf="selectedPaciente">
<input matInput [(ngModel)]="selectedPaciente.nombrePac" #elementDescripcionControl="ngModel"
        type="text" name="NombrePac" placeholder="Nombre Paciente" maxlength="30" readonly>
</div>

答案 1 :(得分:0)

请确保首先在您的应用模块中导入FormsModule。 然后您可以使用“安全导航运算符(?)”和null属性路径将未定义的变量设为可选。