Ember.js ember数据模型中的json子文档

Ember.js ember数据模型中的json子文档,ember.js,ember-data,Ember.js,Ember Data,我有一个web服务,它返回类似这样的内容,其中有一个固定的信封,然后是一个json主体,其模式依赖于“body_schema”。我希望能够使用余烬数据来管理这些,固定封套使用第一类字段,body字段使用一个对象。这可能吗?我在文档中似乎看不到类似的内容,但我无法想象我是第一个处理这个问题的人 {"messages": [ {"id":"5", "from": "someone", "to": "somebody", "body_schema": "atype", "

我有一个web服务,它返回类似这样的内容,其中有一个固定的信封,然后是一个json主体,其模式依赖于“body_schema”。我希望能够使用余烬数据来管理这些,固定封套使用第一类字段,body字段使用一个对象。这可能吗?我在文档中似乎看不到类似的内容,但我无法想象我是第一个处理这个问题的人

{"messages":
[
  {"id":"5",
   "from": "someone",
   "to": "somebody",
   "body_schema": "atype", 
   "body": {
     {"url":"http://localhost:3030/blobs/511d63ddd0a6b5e863000001"}
   }
  }
]}

有什么想法吗?

我解决了这个问题-您需要做的是将自己的属性转换添加到现有的JSONTransforms集合中。我在我的app.js中定义了如下对象变换:

DS.JSONTransforms.object = {
    deserialize: function(serialized) {
      return Em.isNone(serialized) ? {} : serialized;
    },
    serialize: function(deserialized) {
      return Em.isNone(deserialized) ? {} : deserialized;
    }
};
有了它,我可以定义如下的消息模型:

App.Message = DS.Model.extend({
  timestamp: DS.attr('date'),
  body: DS.attr('object'),
  ...
});

使用1.0beta版的余烬数据:

App.RawTransform = DS.Transform.extend({
  deserialize: function(serialized) {
    return serialized;
  },
  serialize: function(deserialized) {
    return deserialized;
  }
});


请参见

Hello,@outside2344我遇到了相同的问题并实施了相同的解决方案,但在编辑数据时,余烬数据不认为我的字段脏。这是你遇到的问题吗?你能解决吗?
App.Foo = DS.Model.extend({
    bar: attr('raw'),
})