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.results了this.zerken.这样做后,它给了我一个错误:
你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未定义的错误,因为通常在收到数据之前呈现视图.初始化它将防止这种情况发生.