2013-08-19 2 views
2

У меня есть следующий маршрут:Перенаправление не работает с afterModel

var UserRoute = Ember.Route.extend({ 
    afterModel: function(model) { 
// model.ensureAllData(); 
    }, 
    redirect: function (model) { 
    this.transitionTo('user.followers', model); 
    } 
}); 

После добавления afterModel крюка, переназначение не работает, даже код в крюке закомментированного.

ответ

4

Я думаю, вы должны поставить transitionTo в afterModel крючок и удалить redirect вообще, если я не ошибаюсь, это было deprecated в пользу к afterModel:

var UserRoute = Ember.Route.extend({ 
    afterModel: function(model) { 
    //model.ensureAllData(); 
    this.transitionTo('user.followers', model); 
    } 
}); 

Надеется, что это помогает.

+1

Существует некоторая разница между 'afterModel' и' redirect': 'transitionTo' в' afterModel' отменяет ранее загруженные модели, когда 'transitionTo' в' redirect' не делает. Кроме того, я не мог найти уведомление об отказе от «переадресации». Можете ли вы обновить ссылку? – mbritto

+0

@mbritto Полезные объяснения. У меня был переход, вызванный в hook после того, как отобразилась страница show, если у модели был firstObject. Я столкнулся с проблемой, когда у меня был маршрут, который загружал глобальный и локальный результат для той же модели. Глобальный был загружен первым, и поэтому он всегда был переопределен переходом в hook after after. Изменение перехода, которое должно быть вызвано из перенаправления, выполняло первую модель. – Jim

+0

@ Jim: Рад, что я мог бы помочь :) – mbritto