Ember-data: Как определить, загружена ли модель async: true отношения без запуска загрузки?

Мне нужно проверить, было ли загружено отношение async без запуска загрузки, возможно ли это?

Ответ 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')