Мне нужно проверить, было ли загружено отношение async без запуска загрузки, возможно ли это?
Ember-data: Как определить, загружена ли модель async: true отношения без запуска загрузки?
Ответ 1
Официального способа сделать это пока нет, но неофициально вы можете сделать
// this will be null if not loaded, and populated if it has at least started loading
if(model._relationships.yourRelationshipName) {...}
Ответ 2
По прошествии времени Ember Data 2.5 получил released. Одна из реализованных функций - это функция ds-references
.
API ссылок позволяет взаимодействовать с вашими отношениями. С его помощью можно проверить, загружен ли ваш RelationshipName
, не вызывая запроса:
model.hasMany('yourRelationshipName').value() !== null;
Ответ 3
С данными ember-data 1.13 для отношения hasMany
будет работать следующее: Все еще хак, но, похоже, нет публичного API.
var relationships = model._internalModel._relationships.initializedRelationships;
if (relationships.yourRelationshipName.manyArray.get('isLoaded')) {...}
Ответ 4
обновление. Все еще не публично API = (
Теперь я использую это:
s._data.yourRelationshipName.get('isLoaded')
Ответ 5
Я добавляю эту причину model._relationships.yourRelationshipName
не работает для меня
model._data.yourRelationshipName
действительно, работа будет также нулевой, если не загружена, и заселена, если она по крайней мере начала загрузку
Ответ 6
Для отношения hasMany
неглавный API для доступа к этому в Ember Data 1.0.0-beta.12 равен model._relationships.tasks.manyArray.get('isLoaded')