Скажем, у меня две модели, Topic
и Post
:
App.Topic = DS.Model.extend({
posts: DS.hasMany('post', { async: true, inverse: 'post' });
});
App.Post = DS.Model.extend({
topic: DS.belongsTo('topic', { async: true });
});
Тема hasMany
Сообщения и сообщение belongsTo
a Тема.
Чтобы загрузить данные из API, выполняется один начальный вызов (который выбирает тему... topic ID 2, например):
GET /topics/2
После получения полезной нагрузки для этого запроса GET, сериализатор затем добавляет ключ links
к полезной нагрузке. У этого есть путь для загрузки сообщений, связанных с темой:
"topic": {
"id": 2,
"links": {
"posts": "/topics/2/posts"
}
}
Этот второй запрос (до /topics/2/posts
) - это то, как сообщения загружаются и присоединяются к теме.
Все это отлично работает при первой загрузке страницы.
Проблема возникает, когда Post создается во время сеанса страницы. Хотя я могу заставить эту тему перезагружать (вызывая .reload()
для объекта модели, который представляет тему), Posts
, связанный с темой, перезагружается not. Второй вызов API (для получения сообщений) никогда не выполняется, в то время как первый вызов (чтобы получить только тему) сделан. Если я обновляю страницу, будут загружены сообщения, созданные мной на предыдущей загрузке страницы (но, конечно, если я перейду и сделаю еще несколько сообщений, они не появятся до загрузки следующей страницы).
В поисках решения я столкнулся с этим вопросом: Как перезагрузить асинхронную связь с ссылками hasMany?
Однако, похоже, что решение больше не работает для текущих версий Ember/Ember-Data. Предоставленный JSFiddle не работает.
Итак, , как я могу перезагрузить этот вид hasMany-отношений? Приветствуется любая помощь.