Javascript embedded的embedded data RestAdapter有许多
如何使用余烬数据进行此操作Javascript embedded的embedded data RestAdapter有许多,javascript,ruby-on-rails,node.js,ember.js,ember-data,Javascript,Ruby On Rails,Node.js,Ember.js,Ember Data,如何使用余烬数据进行此操作 {"poll":{"id":1,"question":"lym features", "choices":[{"id":1,"text":"Improve AI", "PollId":1}, {"id":2,"text":"Multiplayer","PollId":1}, {"id":3,"text":"Modern Art","PollId":1}]}} 这是来自服务器的json响应。我需要em
{"poll":{"id":1,"question":"lym features",
"choices":[{"id":1,"text":"Improve AI", "PollId":1},
{"id":2,"text":"Multiplayer","PollId":1},
{"id":3,"text":"Modern Art","PollId":1}]}}
这是来自服务器的json响应。我需要ember data RESTAdapter来解析它。我必须重写
DS.RESTSerializer
中的extractSingle
方法。有关详细信息,请参见代码中的emberjs链接
// http://stackoverflow.com/questions/14320925/how-to-make-embedded-hasmany-relationships-work-with-ember-data
// http://emberjs.com/api/data/classes/DS.RESTSerializer.html#method_extractSingle
App.PollSerializer = DS.RESTSerializer.extend({
extractSingle: function(store, type, payload, id) {
var poll = payload.poll;
var choices = poll.choices;
delete poll.choices;
poll.choices = [];
choices.forEach(function(c) {
poll.choices.push(c.id);
});
payload = { choices: choices, poll: payload.poll };
return this._super(store, type, payload, id);
}
});
这将我的原始结构转换为标准形式
注:被否决的无知傻瓜,有没有更简单的方法,我是否陷入了某种陷阱,请解释自己。您可以使用EmbeddedRecordsMixin并将
选项设置为嵌入