将检索到的Ember数据记录转换为普通对象的Ember方式是什么?
What is the Ember way of converting retrieved Ember Data records into plain objects?
我使用var items = store.find('model');
检索了一系列记录。返回的对象是RecordArray
的一个实例,包含几个条目,每个条目都有一个Ember对象,允许我获取和设置记录的属性。
一切看起来都很好。
现在我需要将返回的对象提供给第三方库,当然我不能将Ember对象发送到那里,因为它需要普通对象。
我看了一页又一页的相关材料,但我找不到任何通用的方法来做这件事。我很确定有一个,因为这似乎是一个非常基本的用例,所以我没有想要重新发明轮子,重新写一遍。
烬有这样的设施吗?我怎么能获得一个简单的数组与纯JavaScript对象(只是哈希,我的意思是)从这个RecordArray
我得到了?
当然,我可以做JSON.parse(JSON.stringify(recordArray));
,但对于大型对象,似乎不太性能这么多的转换。我想知道Ember是否提供了一种更直接(性能更好)的方法来做到这一点。
谢谢!
据我所知,没有ObjectSerializer,所以可能最简单的方法是使用JSONSerializer并使用JSON。解析以从中创建对象。
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;
}
相关文章:
- 将ember对象的数组从ember组件传递到模板
- Ember.js(2.5.0)如何设置嵌套对象值
- 带有普通对象的Ember.js查找不起作用
- 无法观察Ember.js中的对象数组
- 通过当前路由器's模型转换为Ember.js中创建的对象
- 在模板中的Ember.js对象上发出迭代
- 对象在Ember.js中保存时从视图中消失
- 在ember.js中保存对象时出错:'对象X没有方法'保存''
- 如何获取 Ember 组件对象内部承诺成功或错误回调
- 如何仅按某些对象填充 Ember.js 的选择
- Ember.js:通过原型和元动态更改 Ember 对象的“类”
- 以天为单位的 2 个 ember 日期时间对象之间的差异
- Ember 对象函数定义中的计算属性.js
- 未捕获的类型错误:对象 #<对象> 没有方法“重新打开”(Ember.js)
- 在 Ember 对象中深度包装 JSON 响应对象
- 将Ember.js与Raphael.js结合使用:如何将Ember对象与Raphael对象相关联
- Ember对象的Javascript作用域
- 使用attr_bind调用带有ember对象参数的函数
- 有没有任何方法可以将Ember对象转换为普通的javascript对象
- 基于地理位置 API 刷新 Ember 对象