我正在使用默认的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()
)
我在这里缺少什么?
答案 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);
}
});
我希望它有所帮助