Angular раскрывающиеся списки и параметр сравнения с именем члена - PullRequest
0 голосов
/ 16 февраля 2020

Мы реализуем функцию CompareWith для выпадающих меню выбора материалов. У нас есть несколько классов с различными членами первичного ключа: AddressTypeId, AddressFormatId и т. Д. c, поэтому в итоге мы пишем много разных функций сравнения.

Есть ли метод для написания 1 функции, передавая имя первичного ключа член, и как это может быть включено в HTML ниже?

Машинопись:

compareAddressTypeObjects(object1: any, object2: any) {
    return object1 && object2 && object1.addressTypeId == object2.addressTypeId;
}

compareAddressFormatDataObjects(object1: any, object2: any) {
  return object1 && object2 && object1.lkAddressFormatId == object2.lkAddressFormatId;
}

HTML:

        <mat-form-field class="address-format" appearance="outline" floatLabel='always'>
          <mat-label>Address Format</mat-label>
          <mat-select
            formControlName = "addressFormat"
            [compareWith]="compareAddressFormatDataObjects"
            placeholder ="Select"
            (selectionChange)="addressFormatChangeEvent($event)" required >
            <mat-option (click)="addressHeaderForm.controls.addressFormat.reset()">Select</mat-option>
            <mat-option
                *ngFor="let addressFormatItem of addressFormatList"
                [value]="addressFormatItem"
            >
            {{addressFormatItem.addressFormatDescription}}
            </mat-option>
          </mat-select>
        </mat-form-field>

        <mat-form-field class="address-type" appearance="outline" floatLabel='always'>
          <mat-label>Address Type</mat-label>
          <mat-select
            formControlName = "addressType"
            [compareWith]="compareAddressTypeObjects"
            placeholder ="Select"
            (selectionChange)="addressTypeChangeEvent($event)" required >
            <mat-option (click)="addressHeaderForm.controls.addressType.reset()">Select</mat-option>
            <mat-option
                *ngFor="let addressTypeItem of addressTypeList"
                [value]="addressTypeItem"
            >
            {{addressTypeItem.addressTypeDescription}}
            </mat-option>
          </mat-select>
        </mat-form-field>

Использовать функцию сравнения с Angular Компонент выбора мата материала со значением связанного базового элемента

...