【问题标题】:printing an option value gives an un expected result?打印选项值会产生意想不到的结果?
【发布时间】:2019-06-17 19:59:20
【问题描述】:

我有一个 Angular 5 项目。我有一个由数组填充的下拉框。我正在从下拉列表中选择一个选项并打印它。但是我可以看到它正在打印未预期的值。

在我的组件类中,我有一个库存数组

inventories: FlightInventory[] = [];

这是我定义 FlightInventory 的 model.ts

export enum FlightInventoryCode {
  SMS = 'SMS',
  MMS = 'MMS',
  EMAIL = 'EMAIL',
  MCN_VM = 'MCN_VM',
  PBE = 'PBE',
  PTU = 'PTU'
}

export enum FlightInventoryType {
  NUMBER = 'NUMBER'
}


export interface FlightInventory {
  id: string;
  label: string;
  code: FlightInventoryCode;
  type: FlightInventoryType;
  rate: number;
  isTagOn: boolean;
  allowSmsFallback: boolean;
}

在我的模板 html 中

<select formControlName="inventory" [compareWith]="compareInventory" (change)="inventoryChanged($event.target.value);">
          <option value="" disabled>{{ 'PLACEHOLDERS.SELECT_INVENTORY' | translate }}</option>
          <option *ngFor="let inventory of inventories" [ngValue]="inventory">{{ inventory.label }}</option>
        </select>

在我的组件类中,我试图打印选择的选项。

  inventoryChanged(event){
    console.log(event);
  }

目前我的选择框中只有两个项目。所以当我选择项目时,inventoryChanged 会被触发。但是输出如下。

1: Object
2: Object

但是我希望打印一个 FlightInventory 对象。知道这里有什么问题吗? 感谢任何帮助

【问题讨论】:

  • 尝试记录表单值console.log(this.myForm.get('inventory').value) 吗?
  • 是的,效果很好......非常感谢......非常棒......知道为什么 console.log(event); } 不打印???
  • 我不知道,它可能来自事件本身,没有minimal reproducible example 我真的不能告诉你。我正在发布一个答案,以便您可以关闭您的问题!

标签: angular


【解决方案1】:

正如评论中所说,只需打印表单控件的值:

console.log(this.myForm.get('inventory').value)

【讨论】:

    【解决方案2】:

    console.log(JSON.stringify(event));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-18
      相关资源
      最近更新 更多