Я вызываю конечную точку API в angular 5, используя импорт Http, чтобы заполнить выпадающий список, но я получаю неопределенное значение, когда я регистрирую его в консоли, и выпадающий список не заполняется какими-либо данными ... он должен быть категориями элементов .
Пункт-category.ts
import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
import {Router} from '@angular/router';
import { Globals } from '../shared/api';
import { of } from 'rxjs/observable/of';
import 'rxjs/add/operator/toPromise';
declare var $: any;
@Injectable()
export class ItemCategoryService{
private categoryUrl = this.globals.CATEGORYS_URL;
constructor(private http: Http, private globals: Globals, private router:Router) { }
fetchCategories(){
let v = this.page_header();
return this.http.get(this.categoryURL, v)
.toPromise()
.then(response => response.json())
.catch(this.handleError);
};
}
itemCategory.component.ts
fetchCategorys(){
this.categorySrv.fetchCategories().then(response =>this.categorys = response.results )
.catch(error=> this.error = error )
console.log(this.categorys); // <== undefined
}
itemCategory.component.html
<select class="form-control" [(ngModel)]="product.category"[formControl]="productForm.controls['productCategory']" require>
<option *ngFor="let item of categorys" [value]="item.slug">{{item.name}}</option>
</select>
Это то, что у меня есть, но undefined - это то, что я получаю в консоли, а в выпадающем меню ничего нет из API, проверка также ничего не показывает ... что я мог ошибиться?