在ionic2中使用angular2的PUT请求

时间:2016-12-19 21:34:57

标签: angular ionic-framework put

我需要帮助制作一个可点击的列表,在点击时切换颜色。 我已经知道如何从外部站点读取数据,但现在我想将数据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());
}

1 个答案:

答案 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
        });
}