簡體   English   中英

將postgres json字段與余燼數據一起使用

[英]Using postgres json field with ember data

我有一個Rails api,它吐出了一個名為colors json類型的postgres字段。 我有一系列可以更改的輸入字段,我希望每個字段更改時都可以修改此json對象上的鍵,但是綁定似乎並未按預期工作。

數據如下:

 "colors": { "primary_color": "#c43535", "secondary_color": "#0000FF" }

我的輸入如下所示:

{{input type="text" class="form-control" value=model.colors.primary_color}}
{{input type="text" class="form-control" value=model.colors.secondary_color}}

這會在字段中顯示正確的顏色,但是當我更新字段時,JSON對象在Ember Inspector中似乎沒有更新。

拾色器

到目前為止,我已經嘗試了三種不同的轉換:

json.js

export default DS.Transform.extend({

  deserialize: function(serialized) {
    return JSON.parse(serialized);
  },

  serialize: function(deserialized) {
    return JSON.stringify(deserialized);
  }

});

raw.js

import DS from 'ember-data';

export default DS.Transform.extend({

  deserialize: function(serialized) {
    return serialized;
  },

  serialize: function(deserialized) {
    return deserialized;
  }

});

object.js

export default DS.Transform.extend({

  deserialize: function(serialized) {
    return Ember.isNone(serialized) ? {} : serialized;
  },

  serialize: function(deserialized) {
    return Ember.isNone(deserialized) ? {} : deserialized;
  }

});

所有這些似乎都具有相同的結果,即更新字段不會修改對象。 我如何像這樣用ember-data序列化/綁定/更新json對象?

通過未在DS.attr()指定類型,它僅將原始對象傳遞通過,您可以在此處看到: http : //emberjs.jsbin.com/zitobi/2/edit

我認為在這種情況下。 序列化意味着將對象變成常規JSON對象,反序列化意味着將其變成Ember對象。

App.PrimaryColorTransform = DS.Transform.extend({
  serialize: function(value) {
    return value.get('primary_color');
  },
  deserialize: function(value) {
    return Ember.create({ primary_color: value[0]});
  }
});

App.Color = DS.Model.extend({
  primary_color: DS.attr('primaryColor'),

});

http://emberjs.com/guides/models/the-rest-adapter/#toc_creating-custom-transformations

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM