Angular 4,将http响应observable转换为object observable

我是可观察的概念的新手,需要一些转换帮助.
我有一个服务,它返回一个Observable< Response>从一个Http请求,但我需要转换它做一个Observable< PriceTag>在connect方法中的DataSource上使用它.
反正有没有这样做?

这是我服务的方法

getPriceTags(): Observable<Response> {

    // Set the request headers
    const headers = new Headers({ 'Content-Type': 'application/json' });

    // Returns the request observable
    return this.http.post(Constants.WEBSERVICE_ADDRESS + "/priceTag",null,{headers: headers});

}

这里是DataSource类,我需要将它作为Observable< PriceTag>返回:

export class PriceTagDataSource extends DataSource<PriceTag> {

    constructor (private priceTagService: PriceTagService) {
        super();
    }

    connect(): Observable<PriceTag> {

        // Here I retrieve the Observable<Response> from my service
        const respObs = this.priceTagService.getPriceTags();

        // Now I need to return a Observable<PriceTag> 

    }

    disconnect() {}

}

以下是我的请求回复的示例:

{
    // This object is used to check if the query on the server was sucessful
    "query": {
        "sucessful": true
    },// These are my PriceTags 
    "tags": [
        {
            "id": "1","name": "MAIN"
        },{
            "id": "2","name": "CARD"
        }
    ]
}
从角度4.3开始,这可以自动完成.

例:

export class SomeService {
    constructor(private http: HttpClient) {}  // <--- NOTE: HttpClient instead of Http

    getSome(): Observable<MyAwesomeObject> {
        return this.http.get<MyAwesomeObject>.get('myUrl');
    }
}

所以在你的情况下,这将是:

返回this.http.post< PriceTag>(Constants.WEBSERVICE_ADDRESS“/ priceTag”,{headers:headers});

再次,使用HttpClient而不是Http

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...