我的模型序列化面临一些问题。下面是一个详细的代码,它将显示我当前的模型和相应的序列化器的外观。
用户模型
export default Model.extend({
name: attr('string'),
accounts: hasMany('account', {async: false})
});
帐户模型
export default Model.extend({
type: attr('string'),
transactions: hasMany('transaction')
})
交易模型
export default Model.extend({
date: attr('string'),
amount: attr('number')
})
所以基本上它是另一个hasMany中的hasMany。
序列化器如下:
基本序列化器:
export default BaseSerializer.extend({
keyForAttribute(key) {
return key.underscore();
},
keyForRelationship(key, relationship) {
return key.underscore();
}
});
用户序列化器:
export default BaseSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
account: { embedded: 'always' }
}
});
帐户序列化器:
export default BaseSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
transaction: { embedded: 'always' }
}
});
现在,当我调用api调用时,该调用给了我一个json响应,其中用户模型具有一个名为accounts的属性:内部具有另一个称为transaction的属性,我期望它们进行序列化,但以某种方式无法正常工作。我在这里做错了什么吗?请告知,因为我是新手,仍然在学习。
基本序列化器为:
export default DS.JSONSerializer.extend(DS.EmbeddedRecordsMixin, {
keyForRelationship(key, relationship) {
return key.underscore();
}
})
序列化json
我没有它,但是从控制台日志中,好像只有用户模型正在序列化,就像我尝试打印console.log(user.get('accounts')。get('firstObject')。get('类型”),然后我在那里看到未定义的内容。
我想要的是:
{
name: "bhavya"
accounts: [
{
type : 'savings',
transactions: [
{
amount: 500
}
]
}
]
}