Angular ReactiveFrom подписка на valueChanges дает [объект Object]

У меня есть небольшая угловая веб-форма только с одним раскрывающимся полем, которое объявлено в моем component.html как formControlName = "serviceName"..

Подробности раскрывающегося списка:

    <div class = "dropdown">
      <label for = "serviceName">Select the Service</label>
      <select class = "form-control" formControlName = "serviceName" id = "serviceName">
        <option *ngFor = "let service of srvNames; let i = index" [value] = "service">{{ service.ServiceName }}</option>
      </select>
    </div>

В моем компоненте у меня объявлен массив srvNames: any[];, и этот массив заполняется через http-вызов службы.

Пользователи могут использовать раскрывающийся список и выбирать разные значения, значения показаны на моей веб-странице. С помощью get ('serviceName'). ValueChanges и подписки я хочу отслеживать изменения.

this.servicesForm.get('serviceName').valueChanges
      .subscribe(
        (value) => {
          console.info(value);
        }
      );

Когда я console.info значение из подписки, я вижу, что я возвращаюсь [объект Object]

Но когда я console.info свой массив, я вижу значения:

0:{ServiceName: "PhdTimeSeriesVS"}
1:{ServiceName: "Product"}
length:2
__proto__:Array(0)

Кто-нибудь может мне помочь? Спасибо, Лино

В вашем коде есть <option [value] = "service" ..>. Или вы хотите сказать <option [value] = "service.serviceID" ..> - ваш "serviceName" получит значение "service.serviceID" - или вы хотите сказать <option [ngValue] = "service"-затем ваш " serviceName будет объектом

Eliseo 08.06.2018 11:41
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
1
741
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы возвращаете объект:

{ServiceName: "PhdTimeSeriesVS"}

И в своем выборе вы передаете этот объект как значение

<option *ngFor = "let service of srvNames; let i = index" [value] = "service">

Измените это, чтобы передать значение данного ключа:

<option *ngFor = "let service of srvNames; let i = index" [value] = "service.ServiceName">

Другие вопросы по теме