Невозможно связать с данными API Angular 6 - PullRequest
0 голосов
/ 25 июня 2018

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

Мой HTML:

<ul *ngFor="let item of items; let i of index">
 <li class="fa fa-plus">{{item.name}} - {{i}}</li>
</ul>

Мой TS:

id: number;
name:string;
imageUrl: string;
items:any = {}; 
ngOnInit() {
this.getItems();
}
getItems() {
this.getItemsService.getItems().subscribe(
  res => {
    console.log(res)
    if (res.Success) {
      this.items = res;
    }
  }
)

}

Я пытаюсь получить данные из массива объектов, поэтому я определил элементы как объект, если я попытался определить его как массив, тот же результат не может связать данные с HTML

Моя ссылка API:

http://5a12745f748faa001280a746.mockapi.io/v1/stores/item

Любые вопросы или недостающая информация, скажите мне, но, пожалуйста, мне нужна помощь, чтобы связать эти данные

1 Ответ

0 голосов
/ 25 июня 2018

Две вещи, сначала HTML: let i = index - это синтаксис.

Во-вторых, у вас есть условие в привязке:

if (res.Success) {
  this.items = res;
}

Это означает, что ваш ответ имеет свойство Success.

Я проверил вашу ссылку API, но это не так.

Таким образом, вы используете Http from @angular/http или HttpClient from @angular/common/http.Вот два синтаксиса:

// Http
return this.http.get('url').map(res => res.json());
// HttpClient
return this.http.get<any[]>('url');

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

if (res) {
  this.items = res;
}
...