Эй, Кас ? Я постараюсь ответить на этот вопрос как можно лучше, пытаясь описать некоторые проблемы, с которыми вы, вероятно, столкнулись на этом пути.У меня это работает локально, так что, надеюсь, я смогу рассказать, как вы можете заставить его работать на вашей стороне.
Во-первых, как я уже упоминал в своем комментарии, вы, похоже, не соответствовали вашему API, вашемумодель и ваш шаблон, когда дело дошло до того, как вы ссылались items
.Вы должны убедиться, что каждый ключ правильный, чтобы они все совпадали.Вот мой внутренний респондент, моя модель и мой шаблон:
Внутренний респондент, использующий express-autoroute :
module.exports.autoroute = {
get: {
'/auctions': function getThings(req, res) {
res.json({
realms: [{
name: 'Azralon',
slug: 'azralon',
}],
auctions: [{
auc: 828911977,
item: 76139,
owner: 'Bloodkina',
bid: 15294990,
buyout: 16099990,
quantity: 10,
timeLeft: 'VERY_LONG',
},
...
});
},
},
};
Аукционная модель (Ember)
import DS from 'ember-data';
export default DS.Model.extend({
auc: DS.attr('number'),
item: DS.belongsTo('item'),
owner: DS.attr('string'),
});
Шаблон приложения (Ember)
{{#each model as |auction|}}
<ul>
<li>{{auction.item.name}}</li>
<li>{{auction.quantity}}</li>
<li>{{auction.bid}}</li>
<li>{{auction.buyout}}</li>
<li>{{auction.timeLeft}}</li>
<li>{{auction.owner}}</li>
</ul>
{{/each}}
Как вы можете видеть, бэкэнд отвечает item
в качестве атрибута аукциона, модель использует item
в качестве атрибутаимя и шаблон также доступ к ключу item
Это то, что я имел в виду, когда сказал, что они должны соответствовать 10
Второе, что я заметил, это то, что ваш аукционист не говорит ничего об отношениях.Если вы посмотрите JSON: API spec , вы увидите, как должны быть определены отношения, то есть с объектом отношений
Я смог получить вашу вещьработая с использованием следующего кода:
Serializer аукциона (Ember)
import DS from 'ember-data';
export default DS.JSONAPISerializer.extend({
normalizeResponse (store, primaryModelClass, payload, id, requestType) {
return {
realms: payload.realms,
data: payload.auctions.map(ah => {
return {
id: ah.auc,
type:'auction',
attributes: ah,
relationships: {
item: {
data: {
id: ah.item,
type: 'item',
}
}
}
}
})
};
}
});
, как вы можете видеть, я строю объект отношений и проверяю, что ключ элемента соответствует .
Последней проблемой, которую я обнаружил, было то, что ваш сериализатор предметов не работал, я предполагаю, что это просто то, что вы не достигли этого, потому что вы успешно внедрили Аукцион Сериализатор.Вот моя реализация:
Item Serializer (Ember):
import DS from 'ember-data';
export default DS.JSONAPISerializer.extend({
normalizeResponse (store, primaryModelClass, payload, id, requestType) {
return {
data : {
attributes: payload,
id: payload.id,
type: 'item',
},
};
}
});
Как я уже сказал, это работает для меня локально, но дайте мне знать, если у вас есть какие-либо проблемы ?