javascript – 将检索到的Ember Data记录转换为普通对象的Ember方法是什么?

我使用var items = store.find(‘model’);检索了一系列记录.返回的对象是RecordArray的一个实例,它包含几个条目,每个条目都有一个Ember对象,允许我在记录中获取和设置属性.

一切看起来都不错.

现在我需要将返回的对象提供给第三方库,当然我不能发送Ember对象,因为它需要普通对象.

我查看了相关材料的页面和页面,但我找不到任何通用的方法.我很确定有一个,因为这似乎是一个非常基本的用例,所以我没有
我想重新发明轮子并重新写下来.

Ember那里有设施吗?我如何从这个RecordArray中获得一个简单的数组,其中包含普通的JavaScript对象(我的意思是哈希)?

UPDATE

当然我可以做JSON.parse(JSON.stringify(recordArray));但是对于那些看起来效果不太好的大型对象而言.我想知道Ember是否提供了更直接的方式(具有更好的性能).

谢谢!

最佳答案 据我所知,没有ObjectSerializer,所以最简单的方法是使用JSONSerializer并使用JSON.parse创建对象.

items.map(function(e){
  return JSON.parse(e.toJSON());
});

但是,您可以手动编写序列化逻辑.

function serializeToObject(model){
  var fields = Ember.get(model.constructor, 'fields');
  obj = {};
  fields.forEach(function(fieldName, kindOfField){
    obj[fieldName] = model.get(fieldName);
  });
  return obj;
}
点赞