Я пытаюсь избавиться от некоторых асинхронных отношений в Ember-Data и вместо этого направить их, но в некоторых проблемах.Загрузка на боковой поверхности с данными Ember
Мой API отправляет обратно связанные данные, но записи являются свойствами для каждого возвращаемого объекта вместо отдельного массива/объекта в корне. Я использую extractArray
, чтобы разбить данные, чтобы ED нравился, но не может понять все правильно. Вот пример из данных, возвращенных из API:
{
"record": [
{
"id": 2,
"name": "3M Aerospace",
"currency": 6,
"paymentTerms": 3,
"Currencies_by_currency": {
"id": 6,
"currency": "USD",
"description": "US Dollar",
"sortOrder": 1
},
"PaymentTerms_by_paymentTerms": {
"id": 3,
"term": "NET10",
"description": "Due with 10 days of invoice date"
"sortOrder": 3
}
},
{
"id": 3,
"name": "BAE Aerospace",
"currency": 6,
"paymentTerms": 3,
"Currencies_by_currency": {
"id": 6,
"currency": "USD",
"description": "US Dollar"
"sortOrder": 1
},
"PaymentTerms_by_paymentTerms": {
"id": 3,
"term": "NET10",
"description": "Due with 10 days of invoice date"
"sortOrder": 3
}
}
]
}
Я знаю, что нужно, чтобы получить Countries_by_mailingAddressCountry
, Currencies_by_currency
и PaymentTerms_by_paymentTerms
из корня объекта. Где именно они должны идти? Я думал, что это должно быть:
{
"record": [
{
"id": 2,
// other data...
"currency": 6,
"paymentTerms": 3,
// more data...
}, {
"id": 3,
// other data...
"currency": 6,
"paymentTerms": 3,
// more data...
}
],
"currencies": [
{
"id": 6,
"currency": "USD",
"description": "US Dollar",
"sortOrder": 1
}
],
"paymentTerms": [
{
"id": 3,
"term": "NET10",
"description": "Due with 10 days of invoice date",
"isActive": true,
"sortOrder": 3
}
]
}
, но ED жалуется, что не может найти соответствующие данные. Модели определяются как
App.Vendor = DS.Model.extend(App.Addressable, {
name: DS.attr('string'),
currency: DS.belongsTo('currency'),
paymentTerms: Ds.belongsTo('payment-term')
});
App.Currency = DS.Model.extend({
currency: string,
description: string,
sortOrder: number,
});
App.PaymentTerm = DS.Model.extend({
term: string,
description: string,
sortOrder: number,
});
Является ли '' запись '' предполагаемыми '' поставщиками '' на вашем выходе JSON? –
Да, это было. Выяснил это после публикации. Я возвращался назад, чтобы обновить эту проблему при правильном форматировании. Мне пришлось реорганизовать большую часть моего адаптера, чтобы он работал правильно. – ultimatemonty