Ember: Как я могу узнать, возвращает ли peekAll какие-либо модели? - PullRequest
0 голосов
/ 15 мая 2018

У меня есть внешний API, который я хочу вызвать ТОЛЬКО, если у меня еще нет модели для данных, которые возвращаются.

Я пытаюсь сделать что-то подобное в своем маршруте:

let positions = this.store.peekAll('position');
if (positions.content.length < 1) {
    //make API call to fetch new data
}

Но я учусь трудному пути, который нельзя назвать length на .content.: / Какой лучший способ обойти это?Я попытался просто посмотреть на переменную positions, но этот объект возвращается, есть ли данные или нет.

PS.Я не могу использовать некоторые встроенные методы кэширования ember, потому что я делаю запросы, а не использую findRecord или findAll.

1 Ответ

0 голосов
/ 15 мая 2018

В настоящее время подсвойство content никогда не должно использоваться, оно устарело для публичного использования уже пару лет (потому что свойство content возвращает массив с InternalModels).

У вас есть два варианта:

  1. Получить собственный массив: positions.getArray().length
  2. Получить длину по вычисленному свойству: positions.get('length')
...