0

当我收到对象 workOrder.supplier 时,我试图选择一个选项,我尝试了 NgValue、ng-selected、compareWith 但不工作,我不知道为什么......这个项目使用 Angular 4。你有另一个选择我试试?

<md-select class="suppliers-list" placeholder="Selecione Sua Empresa" [(ngModel)]="workOrder.supplier" formControlName="supplier" name="supplier" [disabled]="schedulingDisabled" >
      <md-option *ngFor="let supplier of suppliers" [value]="supplier" >
        {{ supplier.corporateName }}                                    
      </md-option>
</md-select>

编辑:

试试这个..这对我有用。您的问题有点不清楚您要做什么。为了澄清删除禁用的属性,看看。

<md-select formControlName="supplier" [(ngModel)]="workOrder.supplier">
       <md-option *ngFor="let supplier of suppliers" [value]="supplier">{{supplier.displayName}}                                   </md-option>
</md-select>

编辑:获取信息的 TS

newWorkOrder() {
let newWorkOrder = new WorkOrder();
// se verdadeiro, pega os dados que vieram do Plano de manutenção ou do editar
if (this.workOrderService.getOSCache() !== null && this.workOrderService.getOSCache() !== undefined) {
  this.workOrderService.getOSCache().subscribe(res => {
    newWorkOrder = res;
    this.selectedSupplier = res.supplier;
    if (res.initialDate != null) {
      this.selectedDateInitial = new Date(res.initialDate);
    }
    if (res.finalDate != null) {
      this.selectedDateFinal = new Date(res.finalDate);
    }
    this.workOrderService.clearOSCache();
  });
} else {
  newWorkOrder.initializeWithJSON(this.createForm());
}
return newWorkOrder;

}

4

1 回答 1

0

我仍然不清楚你在问什么。我假设你想在模板文件中的选定输入中捕获 ts 文件中的值。

<md-select formControlName="supplier" [(ngModel)]="workOrder.supplier" (change)="newWorkOrder(selectedSupplier.value)" #selectedSupplier>
       <md-option *ngFor="let supplier of suppliers" [value]="supplier">{{supplier.displayName}}                                   </md-option>
</md-select>

在你的 ts 文件中:

newWorkOrder(selectedValue:any) {
  console.log(selectedValue);
}

在这个解决方案中,我使用了一种叫做角度模板引用的东西。您可以在此处的官方 Angular 文档中阅读有关它的更多信息

于 2020-05-15T19:19:53.747 回答