Как связать со сложными объектами - PullRequest
0 голосов
/ 15 марта 2019

В Angular 6, как связать с выбором, когда значение опций выбора является сложным объектом?

Вот что я имею в виду…

В нашем приложении мы использовалиэлемент управления select, который выглядел следующим образом:

<mat-select [(value)]="endpoint.group" (selectionChange)="groupSelection_changed()" class="groupSelect" placeholder="Please select a group”>
<mat-option *ngFor="let g of ddGroups" value="{{ g.groupPublicKey }}">{{ g.groupName }}</mat-option>
</mat-select>

Затем мы изменили его так, чтобы он выглядел следующим образом:

<mat-select #groupSelector [(value)]="endpoint.group" class="groupSelect" placeholder="Please select a group">
  <mat-option *ngFor="let g of ddGroups" [value]="{ key: g.groupPublicKey, value: g.groupName }">{{ g.groupName }}</mat-option>
</mat-select>

Важное изменение в [value] параметра mat.Он изменился с {{g.groupPublicKey}} на {key: g.groupPublicKey, значение: g.groupName}

Когда это был просто g.groupPublicKey, я мог легко связать его с endpoint.group в мате-select [(value)] атрибут, потому что оба endpoint.group и g.groupPublicKey были просто строками.Но теперь endpoint.group и {key: g.groupPublicKey, value: g.groupName} являются сложными объектами (endpoint.group также имеет форму {key: string, value: string}).Но использование endpoint.group в атрибуте mat-select [(value)] больше не будет работать.Ничего не выбрано в выборе.

Поэтому мой вопрос: как связать с выбором, значения которого являются сложными объектами?

...