Angular выберите с помощью asyn c souce - значение по умолчанию - PullRequest
0 голосов
/ 15 апреля 2020

У меня много <select>, связанных с HTTP-сервисами (выборка данных из базового REST API). Я пытаюсь соблюдать шаблон Reactive в Angular, это код:

<select class="custom-select" formControlName="bankAccountId" >
  <option *ngFor="let x of bankAccounts$ | async" [value]="x.id" >{{ x.name }}</option>
</select>

Это приводит к пустому выбору, где пользователь должен выбрать опцию вручную. Я хотел бы предварительно выбрать первое значение в select (которое в большинстве случаев выбирают пользователи вручную). Я знаю, как этого добиться, используя императивный шаблон.

ngOnInit() {
  this.bankAccounts$ = this.httpService.getBankAccounts();

  this.bankAccounts$.subscribe(data => {
    this.form.patchValue({ bankAccountId: data[0].id });
  });
}

Есть ли способ достичь этого без необходимости вручную подписываться на Observable? Спасибо!

1 Ответ

0 голосов
/ 15 апреля 2020

Используйте нажмите оператор. так что нам не нужно подписываться вручную.

Попробуйте это:

this.bankAccounts$ = this.httpService.getBankAccounts().pipe(tap(data=> this.form.patchValue({ bankAccountId: data[0].id });));
...