Angular 2*ngFor不显示数据

Peu*_*urr 0 javascript angularjs ionic-framework ionic2 angular

我正在使用Ionic 2和Angular 2的应用程序.现在我正在尝试从API中获取数据并在页面上显示它.

我可以记录数据,我认为这是正确的,但由于某种原因,页面本身没有显示任何内容:

在此输入图像描述

我收到数据的API位于:http://peerligthart.com/grotekerk/v1/api.php/zerken?transform = 1

*ng对我的看法

<ion-content padding>
  <h1 *ngFor="let z of zerken">
    {{ z.naam }}
  </h1>
</ion-content>
Run Code Online (Sandbox Code Playgroud)

调节器

import { Component } from '@angular/core';

import { NavController, PopoverController } from 'ionic-angular';
import { PopoverPage } from '../popover/popover';

import { ZerkenProvider } from '../../providers/zerken';

@Component({
  selector: 'page-lijst',
  templateUrl: 'lijst.html',
  providers: [ZerkenProvider]
})

export class LijstPage {

  zerken: Array<any>;

  constructor(public navCtrl: NavController, public popoverCtrl: PopoverController, public zerkenProvider: ZerkenProvider) {
    this.zerkenProvider.getZerken().subscribe(
      data => {
        console.log(data.zerken);
        this.zerken = data.zerken.results;
      }
    )
  }

  openPopover(event) {
    let popover = this.popoverCtrl.create(PopoverPage);
    popover.present({
      ev: event
    });
  }

}
Run Code Online (Sandbox Code Playgroud)

最后,提供者

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';

@Injectable()
export class ZerkenProvider {

  static get parameters() {
    return [[Http]];
  }

  constructor(public http: Http) {

  }

  getZerken() {
    var url = "http://peerligthart.com/grotekerk/v1/api.php/zerken?transform=1";
    var response = this.http.get(url).map(res => res.json());
    
    return response;
  }

}
Run Code Online (Sandbox Code Playgroud)

那么,页面显示的是什么:

在此输入图像描述

你可以看到..什么都没有.我希望有人有解决方案,亲切的问候!

- - - - - - -编辑 - - - - - - -

我换this.zerken = data.zerken.resultsthis.zerken.这样做后,它给了我一个错误:

在此输入图像描述

AJT*_*T82 6

zerken的回答似乎没有results对象,所以

this.zerken = data.zerken.results;
Run Code Online (Sandbox Code Playgroud)

应该:

this.zerken = data.zerken;
Run Code Online (Sandbox Code Playgroud)

请记住初始化组件中的数组:

zerken: Array<any> = [];
Run Code Online (Sandbox Code Playgroud)

这样你就不会得到zerken未定义的错误,因为通常在收到数据之前呈现视图.初始化它将防止这种情况发生.