我知道这可能是一个noob问题,因为我看到了更复杂的东西,但要理解复杂的我需要先理解这些简单的东西。
我试图从api(laravel)的JSON字符串中获取名称:
{"name":"Abigail","state":"CA"}
使用返回此代码的路径创建代码(在laravel中):
return response()->json([
'name' => 'Abigail',
'state' => 'CA'
]);
在离子中我得到了这些文件:
page.ts:
export class Page {
constructor(public http: Http) {}
getJson() {
this.http.get('http://external.ip/api')
.map(res => res.json())
.subscribe(
data => this.data = data
);
}
}
page.html中:
<ion-header>
<ion-navbar>
<ion-title>App</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<ion-content>
<ion-list>
<ion-item>
<h3>{{data.name}}<h3>
</ion-item>
</ion-list>
</ion-content>
</ion-content>
我知道这不起作用,但我需要帮助才能使其正常工作。 我希望以后能够添加更多名称。 之后我希望能够将数据发布到api(例如添加名称或更改日期)。
答案 0 :(得分:3)
这应该可以正常运行getJson()(我添加了OnInit代码来实现)。给你一个简单的帖子请求的快速例子。您可以订阅该帖子或保留原样。
//Will need on OnInit to run getJson()
import {Component, OnInit} from '@angular/core';
export class Page implements OnInit {
constructor(public http: Http) {}
data: any;
getJson() {
this.http.get('http://external.ip/api')
.map(res => res.json())
.subscribe(
data => this.data = data;
);
}
//run getJson() at initial load
ngOnInit() {
this.getJson();
}
postJson(data:any) {
let headers = new Headers({ 'Content-Type': 'application/json'});
let options = new RequestOptions({ headers: headers });
return this.http.post('http://52.11.14.57:4000/api/events', JSON.stringify(data), options)
.map((res: Response) => res.json());
}
}
}