Получать параметры с AJAX с select options

Я увидел, что нужно использовать наблюдаемо и подписывает, но это не достаю...

В услуге у меня есть это (в postman он возвращает мне JSON со всеми полями):

 findByNombre(nombre: String): Observable<Aulas> {
    return this.http.get<Aulas>(this.url + '/' + nombre);
  }

В html у меня есть это:

  <label>Lista de aulas</label><br>
  <select formControlName="aulas" (change)="buscarValores()" >
    <option *ngFor="let aula of aulas" >{{aula.nombre}}</option>
  </select>
  </div>
  <div>
    <label>Nombre</label><br>
    <input formControlName="nombre">
  </div><p></p>

И в компоненте он, где я должен делать это, но это не достаю. Я увидел, что в component я должен применять код в

this.formulario.patchValue({

Я попробовал делать такие вещи, но нет способа:

this.aulasService.findByNombre(this.formulario.controls.nombre.value).subscribe(resultado => this.capacidad = resultado.capacidad);

Это не было бы должно делать это в ngOnInit: правда? Я попробовал помещать код в (change) = "buscarValores ()", но нет способа

Я не могу делать console.log результата, но если я это делаю на this.capacidad, он дает undefined

this.aulasService.findByNombre(this.formulario.controls.nombre.value).subscribe(resultado => this.capacidad = resultado.capacidad);
console.log(this.capacidad);

Я ИЗДАЮ. С этим в ngoninit cconsigo красить то, что он возвращает мне в консоли:

this.aulasService.findByNombre ('Аудитория 1') .subscribe (Аудитории => { this.aulas2 = Аудитории; console.log (this.aulas2);

Тема состоит в том, что я понимаю, что это не должно быть здесь, нет? Он должен бы быть в методе change select options

Imagen

То, что я не знаю, как я перемещаю элемент, например имя, в ящик имени?

Я ИЗДАЮ 2: С этим я смог достать из-за консоли имя:

buscarValores() {
    this.formulario.patchValue({
      nombre: this.aulasService.findByNombre(this.formulario.controls.aulas.value).subscribe(Aulas => {this.aulas2 = Aulas; 
        console.log(this.aulas2.nombre);
      }),
    })
   }

Имя я это поместил так, с тем же именем formgroup:

  @Input()
  nombre: String;

Но когда я выбираю что-то из select options, он помещает [object Object], Как parseo в ящик текста? Пример html:

  <div>
    <label>Nombre</label><br>
    <input  formControlName="nombre" >
  </div><p></p>
2
задан 28.12.2019, 19:40
1 ответ

Первое, что ты должен реализовывать, состоит в том, чтобы создавать услугу, которую ты должен соединять с твоим компонентом, чтобы получать и ссылаться на соответствующий метод, а именно, podrГ-схвати реализовывать эту последовательность:

SERVICE

  //URL API for production server
  private api_production = 'backend/php/';

  //Method return the report history
  public getData()
  {
    //Path
    const path = this.api_production + 'getData';
    return this.http.get<Aulas[]>(path);
  };

Уже, когда у тебя будет правильно одинокая услуга, ты должен касаться услугу твоего компонента и реализовывать названный к методу в строителе: СОСТАВЛЯЮЩИЙ TS

//Services import { ReportService } from './../../services/report.service'; //Interfaces import { Faculty } from './../interfaces/faculty';

В твоем строителе ты реализуешь их следующий:

constructor(private _reportService: ReportService)
  {
    _reportService.getData()
    .subscribe(Aulas => {
      //data
      this.aulas = Aulas;

      console.log("Aulas: ", this.Aulas);
    });

  };

HTML

<select>
   <option *ngFor="let aula of aulas" >{{aula.nombre}}</option>
</select>

, Чтобы использовать tipeado Aulas, который является кратко структурой данных, у которой есть стоимость especГ-fico, обозначенная как одна interface а именно:

export interface Aulas
{
  id_nombre:number;
  nombre:string;
}

И не забывай о том, что ты должен tambiГ©n импортировать это в услуге.

, Если ты нуждаешься в чем-то mГЎs, не сомневайся в том, чтобы спрашивать, я надеюсь, что был ясным мой ответ, и если он подал тебя, не забывай пометить ее как правильный ответ для нее soluciГіn твоей проблемой.

1
ответ дан 29.12.2019, 09:10
  • 1
    Спасибо jercorrales. В select options у меня есть налоги аудитории BBDD. То, в чем я нуждаюсь, что, когда будет нажата аудитория, искать соответствующие данные (для этого я имею findByNombre) и красить их в ящиках текста. Así он có mo видят сейчас. Тема состоит в том, что, если я это помещаю в строителя, я понимаю, что só он это делает, когда он трогается не? Ло tendrí которому делать каждый раз, когда нажимают на select options. И despué s, có mo я двигаю элемент класса в буквального текста? imgfz.com/i/Fhngjf5.jpeg – Unai 28.12.2019, 17:36