【发布时间】:2026-01-24 11:00:01
【问题描述】:
假设这是我的 ember 模型:
从“ember-data”导入 DS
export default DS.Model.extend({
foo: DS.attr('string'),
bar: DS.attr(undefined),
fizz: DS.attr('string'),
buzz: DS.attr('string')
})
这是我从表单中收集的一些数据:
let data = {
foo: 'foo_value',
bar: 'bar_value',
fizz: 'fizz_value'
}
然后我将该数据传递给create 调用:
this.store.create('some_model', data)
不可避免地,我最终得到了一个带有属性 buzz 的 Ember 数据记录,设置为 undefined,即使我没有指定它。然后在海市蜃楼中,我可以看到这变成了以下 POST 正文:
{
foo: 'foo_value',
bar: 'bar_value',
fizz: 'fizz_value',
buzz: undefined
}
问题在于我的 API 不喜欢未定义、空或其他它认为“未设置”的值。我无法控制。
如果我没有在 create 调用中传递这些属性,我可以告诉 Ember 不要在模型上设置这些属性吗?
【问题讨论】:
-
您使用的是哪个序列化程序?
-
我们使用了一个轻量定制的 REST 序列化器,是处理这个的地方吗?
-
我们最近切换到 JSONAPISerializer,但据我记得,根本没有设置的属性过去常常被跳过并且不通过适配器传输。我找不到任何合适的例子,但我想normalizeCreateRecordResponse() 可以提供帮助。
标签: ember.js ember-data undefined