[英]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.