угловые 4 значения параметра раскрывающегося меню, полученные от API - PullRequest
0 голосов
/ 08 мая 2018

html:

<div *ngIf="myBooks">
    <mat-select [(ngModel)]="selected">
      <mat-option *ngFor="let book of myBooks" name="state">{{book.state}}</mat-option>
    </mat-select>
 <p>{{ selected }}</p>
</div>

компонент:

import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material';
import {Component, Inject} from '@angular/core';
import {DataService} from '../../create/createservice';
import {FormControl, Validators} from '@angular/forms';
import {State} from '../../create/model';
import {City} from '../../create/model2';
import { HttpClient } from '@angular/common/http';
import { HttpErrorResponse } from '@angular/common/http/src/response';

@Component({
selector: 'app-add.dialog',
templateUrl: '../../dialogs/cityadd/add.dialog.html',
styleUrls: ['../../dialogs/cityadd/add.dialog.css']
})

export class AddDialogComponent1 {

constructor(public dialogRef: MatDialogRef<AddDialogComponent1>,
          @Inject(MAT_DIALOG_DATA) public data1: City,
          public dataService: DataService,private httpService:HttpClient) { 
  }

myBooks: string [];
selected = null;

formControl = new FormControl('', [
Validators.required
// Validators.email,
]);

states: string[];
city:string[];


 ngOnInit () {
  this.httpService.get('api/state-city').subscribe(
    data => {
      this.myBooks = data as string [];     // FILL THE ARRAY WITH DATA.
    },
    (err: HttpErrorResponse) => {
      console.log (err.message);
    }
  );
 }

Это мой код, я хочу выбрать значения, которые есть в этом API, но я не получаю никаких значений, пожалуйста, помогите мне, как связать его

в моем API у меня есть 'state' имя, я хочу, чтобы значения из выпадающего списка, как его получить

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Проблема в том, что вы объявляете myBooks: string []; как массив строк. И позже в вашем цикле *ngFor вы пытались обращаться к ним как к массиву объектов book.state

Итак, объявите myBooks: any [] = [];, позже убедитесь, что API отвечает на данные, которые вы ожидаете.

Надеюсь, это поможет,

0 голосов
/ 08 мая 2018

Объявите массив myBooks как:

myBook : any[]=[]

и передать значение данных на него:

this.myBook = data

Это будет работать!

0 голосов
/ 08 мая 2018

вы используете выбранный в качестве модели нг. Вам следует указать значение, которое нужно выбрать.

здесь в вашем коде вы присваиваете ноль.

...