Ember 1.7.0 Ember Data 1.0.0 - beta 10
我有一个从不同的rails服务器获取数据的产品模型 我的适配器是
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
namespace: 'api/v1'
});
和产品
import ApplicationAdapter from './application';
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
namespace: 'api/v1',
host: 'http://localhost:4000'
});
我的产品型号是
import DS from 'ember-data';
export default DS.Model.extend({
itemId: DS.attr('string'), //this is NOT a primary key
title: DS.attr('string'),
thumbnailUrl: DS.attr('string'),
categories: DS.attr('string'),
currency: DS.attr('string'),
price: DS.attr('number'),
productUrl: DS.attr('string'),
pictureUrl: DS.attr('string')
});
我的其他rails服务器的json响应是
{
"products": [{
"id": "1",
"item_id": "310351720028",
"title": "some cool title",
"thumbnail_url": "http://mythumbnail.url",
"categories": "abc",
"currency": "$",
"price": "6900.0",
"product_url": "some url",
"picture_url": "hereis m"
}, {
"id": "2",
"item_id": "221588471947",
"title": "Title 1",
"thumbnail_url": "http://mythubnail",
"categories": "def",
"currency": "$",
"price": "449.0",
"product_url": "someurl",
"picture_url": "someurl"
}]
}
带有蛇案例的属性:_不显示它们是未定义的示例item_id,thumbnail_url。
我尝试使用ember g serializer Product
制作一个serailizerimport DS from 'ember-data';
import Ember from 'ember';
export default DS.RESTSerializer.extend({
keyForAttribute: function(attr) {
return Ember.String.camelize(attr);
}
});
//当我做一个console.log(Ember.String.camelize(attr))时,我发现蛇案已经转换为camelCase。 我没有产品路线
但没有运气......
更新:
根据@chrism_的irc解决方案,这应该适用于RESTAdapter http://jsbin.com/ripaqe/3/edit?html,js,output
答案 0 :(得分:2)
因为您使用带有snake_case的JSON,而不是使用DS.RESTSerializer
使用DS.ActiveModelSerializer
。它专为这种情况而设计,它将为您节省工作。
请参阅:http://emberjs.com/api/data/classes/DS.ActiveModelSerializer.html