0

我有一个返回类似这样的 Web 服务,其中有一个固定的信封,然后是一个 json 的主体,其架构取决于“body_schema”。我希望能够使用 ember-data 来管理这些,固定信封的第一类字段和正文字段的对象。这可能吗?我似乎在文档中看不到这样的东西,但我无法想象我是第一个遇到这个问题的人。

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

有任何想法吗?

4

2 回答 2

1

使用 ember-data 1.0beta:

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

前任。

App.Foo = DS.Model.extend({
    bar: attr('raw'),
})

https://github.com/emberjs/data/blob/master/TRANSITION.md

于 2014-06-11T10:33:25.510 回答
0

我解决了这个问题 - 您需要做的是将您自己的属性转换添加到现有的 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'),
  ...
});
于 2013-02-20T18:53:19.743 回答