繁体   English   中英

将数据从Rails API反序列化到Angular 2模型

[英]Deserializing data from Rails API to Angular 2 models

我正在尝试调用Rails后端API并返回一些简单数据-模型数组。 例如,我有一个汽车模型,它具有制造,年份和价格的属性。

类似地定义了Angular 2模型。

在http调用Rails应用程序时:

class CarsController < ApplicationController
    respond_to :json

    def index
        respond_with Car.all.order(:make)
    end
end

rails应用程序将以对象的jSON数组形式返回数据,每个对象都包装在一个对象中:

[ { car: { year: 2017, Make: Honda, Model: Accord } }, 
  { car: { year: 2010, Make: Toyota, Model: Solara } }
]

等等

Angular2例程,用于调用并转换返回的数据:

  getCars(): Observable<Car[]> {
    return this.http.get(this.url)
                    .map(this.extractData)    
                    .catch((res: Response ) => this.handleError(res));
  }

  private extractData(res: Response) {
    let body = res.json();
    return body || { };
  }

不起作用-它返回一个空对象,因为它希望数据没有将每个对象包含在另一个对象中。

如何让Angular2做正确的事? 如何转换返回的数据,以便Angular2可以正确填充我的Cars数组?

(我不敢相信在搜索时找不到对此问题的任何参考!)

谢谢。

我认为问题可能出在您发回一个数组作为响应而不是键值对。 如果我没记错的话,当API返回数组时,AngularJS有特殊情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM