Ember.js - Как я могу перейти на другой маршрут из инициализатора?
Я использую инициализатор для подключения к серверу сокетов. По истечении заданного промежутка времени я хотел бы перенаправить на другой маршрут (который обрабатывает ошибку).
Как я могу сделать это из инициализатора?
Текущий код ниже:
/* Socket Initializer */
export default {
name: 'Socket',
initialize: function(Container, Application) {
Application.deferReadiness();
var IO = Container.lookup('socket:main');
IO.connect({
reconnectionDelayMax: 1000
});
IO.socket.on('connect', function(){
Application.advanceReadiness();
});
var RetryCounter = 0;
IO.socket.on('connect_error', function(Error) {
if (RetryCounter == 2) {
//this.transitionTo('development');
//Application.transitionTo('development');
//Container.transitionTo('development');
// None of the above work.
}
RetryCounter++;
});
}
};
1 ответ
Решение
Вы можете взять роутер из контейнера и вызвать с него transitionTo.
var router = container.lookup('router:main');
router.transitionTo('foo');
Придуманный пример: http://emberjs.jsbin.com/bukuvuho/3/edit