我使用var items = store.find('model');
检索了一系列记录。返回的对象是RecordArray
的一个实例,包含几个条目,每个条目都有一个Ember对象,允许我在记录中获取和设置属性。
一切看起来都不错。
现在我需要将返回的对象提供给第三方库,当然我不能发送Ember对象,因为它需要普通对象。
我查看了相关材料的页面和页面,但我找不到任何通用的方法。我很确定有一个,因为这似乎是一个非常基本的用例,所以我不知道 想要重新发明轮子并再次写下来。
Ember有设施吗?如何从我得到的RecordArray
获得一个简单的数组,其中包含普通的JavaScript对象(我的意思是哈希)?
更新
当然,我可以JSON.parse(JSON.stringify(recordArray));
,但是对于那些看起来效果太差的大型物品而言,这么多转换都是如此。我想知道Ember是否提供了一种更直接的方式(性能更好)。
谢谢!
答案 0 :(得分:2)
据我所知,没有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;
}