Ember原始JSON转换不能用作例外?

时间:2013-11-06 20:29:52

标签: javascript ember.js ember-data

我正在使用默认的RESTAdapter和ActiveModelAdapter,我希望在特定模型中包含 JSON对象
例如:

App.Game = DS.Model.extend(
  name: attr('string')
  options: attr('raw') # This should be a JSON object
)

阅读ember-data/TRANSITION.md后。
我在示例中使用了相同的变换器:

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

当我尝试创建 Game 实例模型并保存它时,POST数据中的 options 属性为“null”(字符串类型)。

App.GamesController = Ember.ObjectController.extend(
  actions:
    add_new: ->
      game = this.get('model')
      game.set('options', {max_time: 15, max_rounds: 5})
      game.save()
)

我在这里缺少什么?

1 个答案:

答案 0 :(得分:6)

您可能需要注册转换:

App = Ember.Application.create();

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

App.initializer({
  name: "raw-transform",

  initialize: function(container, application) {
    application.register('transform:raw', App.RawTransform);      
  }
});

我希望它有所帮助