我需要帮助制作一个可点击的列表,在点击时切换颜色。 我已经知道如何从外部站点读取数据,但现在我想将数据PUT到该站点。我已经让它与邮递员一起工作了。
http://www.external.tld/page/{id}
name = test
color = toggle
所以我已经得到了这样的JSON数据:
{"id":"6","name":"test1","color":"red"},
{"id":"7","name":"test2","color":"red"}
这是检索数据的当前html代码:
<ion-item *ngFor="let data of data" [style.backgroundColor]="data?.color" (click)="PostData(data?.id)">
{{data?.name}}
</ion-item>
所以现在我需要一个有效的PostData函数,该函数使用PUT方法在红色和绿色之间切换颜色并将其发送到上面的页面。
例如,如果我点击id为6的列表,名称:test1和color:red,这应该是outPUTted:
http://www.external.tld/page/6
name = test1
color = green
到目前为止我得到的代码不起作用:
PostData(data:any) {
let headers = new Headers({ 'Content-Type': 'application/json'});
let options = new RequestOptions({ headers: headers });
return this.http.post('http://www.external.tld/page/'+data, JSON.stringify(data), options)
.map((res: Response) => res.json());
}
答案 0 :(得分:1)
使用Observables时需要subscribe
因为它们很懒:
PostData(data:any) {
let headers = new Headers({ 'Content-Type': 'application/json'});
let options = new RequestOptions({ headers: headers });
return this.http.post('http://www.external.tld/page/'+data, JSON.stringify(data), options)
.map((res: Response) => res.json())
.subscribe(
res => {
console.log(res); // this should print server's response after you post data
},
error => {
console.log(error); // this will print error if it occurs
});
}