У меня есть две модели асинхронное:Ember устанавливает только один элемент вместо многих
App.Posts = DS.Model.extend({
'content': attr('string'),
'comments': DS.hasMany('comments', {async: true}),
});
App.Comments = DS.Model.extend({
'body': DS.attr('string'),
'postId': DS.belongsTo('posts', {async: true})
});
Через PostController я пытаюсь загрузить Комментарии OnClick через действие:
App.PostController = Ember.ArrayController.extend({
loadComments: function(post_id) {
this.store.find('comments', post_id);
}
});
(возможно, там это лучший способ сделать это?)
Запрос и ответ API верны (см. ответ API ниже), но отображается только один комментарий, затем Ember выдает сообщение об ошибке:
TypeError: Cannot read property 'postId' of undefined
В Embers Console> Вкладка «Данные» есть комментарий в модели комментариев, но в модели комментариев также есть элемент post с параметрами комментариев, установленными на undefined. Это объясняет, почему Ember не может прочитать свойство postId, потому что это не комментарий. Почему Ember выталкивает сообщение в модель комментариев и только толкает один, а не 3 комментария в модель?
API Ответ
{
"comments": [
{
"id": 2,
"postId": 31152,
"body": "Lorem ipsum dolor sit amet, consetetur",
},
{
"id": 2,
"postId": 31152,
"body": "asdasd",
},
{
"id": 2,
"postId": 31152,
"body": "asd asd sd",
}
]
}
Вы можете показать свой маршрутизатор. Если ваши комментарии вложены в почтовый ресурс, вы должны указать это в своем контроллере. – Stakoov