我正在使用带有ember数据的ember,我有一个需要重新加载模型的场景。在重新加载时,当获取数据并且该模型的某些字段为空时,旧数据仍然存在。例如,如果我有一个Post模型
App.Post = DS.Model.extend({
name: DS.attr('string'),
description: DS.attr('string'),
});
现在服务器第一次返回以下数据:
{
"post" : {
"id" : "1",
"name" : "new post",
"description": "some description"
}
}
调用reload后,服务器返回以下数据:
{
"post" : {
"id" : "1",
"name" : "new post",
}
}
重新加载后,"描述"该记录的字段应设置为null。但旧的数据即,"一些描述"仍然坚持这个领域。
如何强制ember数据在重新加载时重置所有字段?
答案 0 :(得分:1)
不幸的是,您想要的确切功能was deprecated a few months ago。在底部,它提到了序列化程序中使用null
替换缺少的属性的方法。
// app/serializers/application.js
// or App.ApplicationSerializer
export default DS.RESTSerializer.extend({
normalize: function(type, hash, prop) {
hash = this._super(type, hash, prop);
// Find missing attributes and replace them with `null`
type.eachAttribute(function(key) {
if (!hash.hasOwnProperty(key)) {
hash[key] = null;
}
});
return hash;
}
});