У меня возникли проблемы с сериализацией модели.Ниже приведен подробный код, который покажет, как выглядит моя текущая модель и соответствующие сериализаторы.
Модель пользователя
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, где у модели пользователя есть свойство, называемое учетными записями: у которого внутренне есть другое свойство, называемое транзакциями, яожидая их сериализации, но как-то не работает.я сделал что-то не так здесь?Пожалуйста, сообщите, как я новичок в ember и все еще изучаю его.
Базовый сериализатор:
export default DS.JSONSerializer.extend(DS.EmbeddedRecordsMixin, {
keyForRelationship(key, relationship) {
return key.underscore();
}
})
Сериализованный JSON
У меня его нет, но из журналов консоли,похоже, что только пользовательская модель сериализуется, как когда я пытался напечатать console.log (user.get ('accounts'). get ('firstObject'). get ('type'), тогда я увидел там неопределенное.
Что я хочу это:
{
name: "bhavya"
accounts: [
{
type : 'savings',
transactions: [
{
amount: 500
}
]
}
]
}