Отсрочка изменения маршрута до загрузки данных в Ember

В Angular свойство разрешения $routeProvider позволяет откладывать изменение маршрута до загрузки данных. Учитывая, что хук модели маршрута в Ember возвращает обещание, мне было интересно, как это было сделано в Ember.

Вот что я имею в виду в angular Задержка изменения маршрута AngularJS до модель загружена для предотвращения мерцания

Ссылка с примером кода была бы отличной


person yeraycaballero    schedule 18.06.2013    source источник


Ответы (1)


Совсем недавно этот PR представил асинхронные переходы для ember.js. С этим изменением вы можете делать всевозможные вещи, например, откладывать переход маршрута, если данные все еще находятся в обработке. В маршруте теперь есть всевозможные крючки, которые можно делать только по вашему желанию.

В качестве примера (взято из сути, упомянутой ниже) в хуке afterModel вы можете сделать что-то подобное, чтобы перейти на маршрут post.show только в том случае, если у вас действительно есть данные:

App.PostsIndexRoute = Ember.Route.extend({
  afterModel: function(posts, transition) {
    if (posts.length === 1) {
      this.transitionTo('post.show', posts[0]);
    }
  }
});

Поскольку эти новые функции все еще очень молодые, вам необходимо использовать последний мастер чтобы он был доступен. Для получения дополнительной информации об использовании API см. эту суть.

Надеюсь, поможет

person intuitivepixel    schedule 18.06.2013
comment
Я видел несколько комментариев об асинхронных переходах, но просто комментарий. Большое спасибо - person yeraycaballero; 19.06.2013