Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript embedded的embedded data RestAdapter有许多_Javascript_Ruby On Rails_Node.js_Ember.js_Ember Data - Fatal编程技术网

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并将
选项设置为嵌入