Angular 所选选项不存在';t在变量更改后更新

Angular 所选选项不存在';t在变量更改后更新,angular,Angular,我有一个特别的问题。在页面中,用户可以按下按钮来更改维护。这是一个具有多对的复杂对象。 我正试图找出一种自动完成字段的解决方案,这样用户就不必再次输入相同的值,也不必进行不必要的更改 当前情况 <!-- Modal --> <ng-template #dialog2 let-ref2="dialogRef2"> <nb-card> <nb-card-header>Modifica Manutenzione</n

我有一个特别的问题。在页面中,用户可以按下按钮来更改维护。这是一个具有多对的复杂对象。 我正试图找出一种自动完成字段的解决方案,这样用户就不必再次输入相同的值,也不必进行不必要的更改

当前情况

<!-- Modal -->
<ng-template #dialog2 let-ref2="dialogRef2">
  <nb-card>
    <nb-card-header>Modifica Manutenzione</nb-card-header>
    <nb-card-body>
      <label>Macchinario</label>
      <br>
      <nb-select fullWidth id="machine" name="machine" [(ngModel)]="idmachine">
        <nb-option *ngFor="let machine of machineObject" [value]="machine.idmachine"
        [selected]="selectedMaintenance.idmachine == machine.idmachine">
          {{machine.description}}</nb-option>
      </nb-select>
    </nb-card-body>
    <nb-card-footer>
      <button nbButton status="primary" (click)="modifyMaintenance()">Invia</button>
      <button nbButton status="default" (click)="dialogRef2.close()">Chiudi</button>
    </nb-card-footer>
  </nb-card>
</ng-template>
selectedMaintenance的初始值设置为null。在打开模式之前,我为变量设置了一个新值。如何强制Angular检测此更改,以便它在HTML页面中自动选择适当的选项

提前感谢您

解决方案 我找到的解决办法非常简单。在打开模式之前,我将值分配给变量

  openDialog2(maintenance): void {
    this.selectedMaintenance = maintenance;
    this.selectMaintenancesForMachine(this.selectedMaintenance.idmachine);
    this.selectComponentsForMachine(this.selectedMaintenance.idmachine);
    //Assegno le variabili
    this.idmachine = this.selectedMaintenance.idmachine;
    this.machinenumber = this.selectedMaintenance.machinenumber;
    this.dialogRef2 = this.dialogService.open(this.dialog2);
  }
解决方案 我找到的解决办法非常简单。在打开模式之前,我将值分配给变量

  openDialog2(maintenance): void {
    this.selectedMaintenance = maintenance;
    this.selectMaintenancesForMachine(this.selectedMaintenance.idmachine);
    this.selectComponentsForMachine(this.selectedMaintenance.idmachine);
    //Assegno le variabili
    this.idmachine = this.selectedMaintenance.idmachine;
    this.machinenumber = this.selectedMaintenance.machinenumber;
    this.dialogRef2 = this.dialogService.open(this.dialog2);
  }