如何从选定的材料选择输入中获取2个字段?

时间:2019-04-19 16:00:01

标签: angular google-cloud-firestore

我有一个选择列表,该列表加载公司列表。目前,我只能获得公司的ID或名称。 我需要将所选公司的ID和名称存储在Firestore集合中。

尝试过(selectionChange)="changeCompany($event.value)" 但这会发送一个对象Object值。我怎么命名呢?

loadedCompanies: Company[] = [];

HTML

      <mat-form-field>
        <mat-select formControlName="companyid" (selectionChange)="changeCompany($event.value)"  placeholder="Select Company" [compareWith]="compareFn">
          <mat-option *ngFor="let lC of loadedCompanies" [value]="lC.id" >
              {{lC.name}}
            </mat-option>
    </mat-select>
    </mat-form-field>

changeCompany方法

    changeCompany(data) {
      this.selectedCompanyName = this.loadedCompanies[data].name;
      console.log('CName' + this.selectedCompanyName);
    }

我想从所选对象中获取值,而不是再次向firestore查询以获取公司名称。

谢谢

1 个答案:

答案 0 :(得分:0)

我已将其解决以下问题:

    changeCompany(data) {
  const inspect = obj => {
    for (const prop in obj) {
      if (obj.hasOwnProperty(prop)) {
        console.log(`${prop}: ${obj[prop]}`);
        if (prop === 'name') {
          this.selectedCompanyName = obj[prop];
        }
        if (prop === 'field1') {
          this.selectedField1 = obj[prop];
        }
        if (prop === 'field2') {
          this.selectedField2 = obj[prop];
        }
      }
    }
  };
  inspect(data);
}