Идея о том, что данные извлекаются через маршрут, по-прежнему имеет много преимуществ, таких как обновление queryParam, обработка ошибок/пузырьковое воспроизведение и паритет со стандартными практиками. Ключевой момент, на который обращает внимание Лорен, заключается в том, что вы можете избежать загрузки пользовательского интерфейса подсостояний, возвращая непосредственное значение вместо обещания в хуке модели.

Пример этого был вдохновлен статьей LinkedIn и продемонстрирован здесь https://ember-twiddle.com/2a2bc29fd7d80976e78a3178aa07a684.

По сути, у меня все еще был маршрут, обрабатывающий выборку через задачу ember-concurrency, а хук модели возвращал объект с двумя свойствами: предыдущий экземпляр задачи и текущий. В этом примере контроллер мог предложить каркас пользовательского интерфейса, а продолжающиеся обновления модели (возможно, путем изменения queryParams через ввод поиска) можно было отменить и удалить с помощью e-c. Это творило чудеса и сохраняло логику загрузки данных вне контроллера и в маршруте, как и следовало ожидать.