我正在使用Ember-Data(v1.13.13)管理来自服务器的对象。
传入属性的值为null。属性类型是一个字符串,默认值为空字符串。空值不是默认为空字符串,如预期的那样。因此,看起来Ember-Data默认情况下会建立一个可为空的字符串数据类型(考虑一般而言,而不是JavaScript)。
无论如何,由于模型是“实例化的”,我想知道如何将传入的null转换为默认的空字符串值。这或指示Ember-Data根据字符串类型而不是可为空的字符串类型来考虑属性。
模型(简体):
App.Note = DS.Model.extend({
mystring: DS.attr('string', { defaultValue: '' })
});
传入的对象:
{
"notes": [{
"mystring": null
}]
}
内存中的结果值:
<App.Note:ember1133:1775>
mystring: null
空字符串和空字符串不同,因此Ember Data的string
转换不执行该转换也就不足为奇了。但是,您可以编写自己的代码来执行以下操作:
// transforms/string-null-to-empty.js
export default DS.Transform.extend({
deserialize(serialized) { return serialized || ''; },
serialize(deserialized) { return deserialized; }
});
然后
mystring: DS.attr('string-null-to-empty')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句