Я пытался воспроизвести эту проблему в твиддл, но, к сожалению, твиддл всегда был успешным, но я надеюсь, что ошибка может показаться кому-то знакомой, и они могут указать мне правильное направление.
Вот твиддл:
https://ember -twiddle.com / 9ee6f28479449b7b1859e4c090490775? OpenFiles = routes.parent.js% 2C
Все имена были изменены, чтобы наши люди чувствовали себя лучше:
Основы:
У меня есть модель 'parent' с асинхронным отношением hasMany к 'child'.
children: hasMany('child', {async: true}),
Затем у меня есть вычисляемое свойство, привязанное к hasMany:
sons: Ember.computed.filterBy('children', 'type', 'son'),
Затем я получаю псевдоним firstObject, чтобы получить первый элемент в массиве 'sons':
firstSon: Ember.computed.alias('sons.firstObject')
В родительском route.setupController я создаю новый объект 'son':
setupController: function(controller, model) {
this._super(...arguments);
var toy = this.get('store').createRecord('toy', {
type: 'latte'
});
this.get('store').createRecord('child',
{parent: model, type: 'son', toy: toy,
name: 'Tyler'});
}
С Ember 2.14 и Ember-Data 2.13 или любой более низкой комбинацией совпадающих версий это работает, и мой шаблон может без проблем ссылаться на parent.firstSon.
Как только я обновляю Ember-Data до 2.14, когда я достигаю желаемого маршрута, у parent.children есть правильный дочерний элемент, но sons: filterBy пусто, и поэтому псевдоним sons.firstObject также пуст. (подтверждено инспектором Ember)
Напоминание: привязанная мною твистдл действительно работает, это более сложная версия в моем приложении, которая не работает.
Простой акт обновления нарушает его - никаких других изменений кода не происходит.
Я видел некоторые похожие проблемы в github ember-data:
Эта проблема: https://github.com/emberjs/data/issues/4974 похожа, но кажется, что она начинается с 2.12 и, кажется, связана с новым вызовом hasMany, который избегает загрузки данных. Я просто привязываюсь к фактическому асинхронному hasMany
https://github.com/emberjs/ember.js/issues/16258 ссылается на аналогичную проблему, но та, которая начинается только с Ember 3.0.0 и отсутствует в 2.18 - моя проблема возникает с 2.14.1 по ~ 2.18
Есть мысли о том, что могло сломаться?