【问题标题】:What is the Ember way of converting retrieved Ember Data records into plain objects?Ember 将检索到的 Ember 数据记录转换为普通对象的方法是什么?
【发布时间】:2014-06-05 19:47:25
【问题描述】:

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

一切看起来都不错。

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

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

Ember 中是否有这样的设施?如何从我得到的RecordArray 获得一个带有纯 JavaScript 对象(我的意思是只是哈希)的简单数组?

更新

当然,我可以使用JSON.parse(JSON.stringify(recordArray));,但对于大型对象来说,这么多转换似乎不太高效。我想知道 Ember 是否提供了一种更直接的方式(性能更好)。

谢谢!

【问题讨论】:

    标签: javascript ember.js


    【解决方案1】:

    据我所知,没有 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;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 2020-07-14
      相关资源
      最近更新 更多