Ember.js-如何从初始化器转换到另一个路由?
我正在使用初始化器连接到套接字服务器。一段时间后,我想重定向到另一个路由(处理错误) 如何从初始化器执行此操作 当前代码如下:Ember.js-如何从初始化器转换到另一个路由?,ember.js,socket.io,ember-cli,engine.io,Ember.js,Socket.io,Ember Cli,Engine.io,我正在使用初始化器连接到套接字服务器。一段时间后,我想重定向到另一个路由(处理错误) 如何从初始化器执行此操作 当前代码如下: /* Socket Initializer */ export default { name: 'Socket', initialize: function(Container, Application) { Application.deferReadiness(); var IO = Contain
/* 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++;
});
}
};
您可以从容器中抓取路由器并从中调用Transitiono
var router = container.lookup('router:main');
router.transitionTo('foo');
人为示例:这看起来会起作用,但我得到了以下错误:Uncaught TypeError:undefined不是函数当我将其设置为转到我没有的路由(foo)时,它显示:“foo”路由未找到。当我把它设置为一条我确实有(测试)的路线时,它给出了上面的错误。测试路由是在路由器中定义的。你认为你能用我给出的示例重现吗?我不确定我是否能猜出问题所在。如果我在渲染后运行转换,它会工作。我想路由器在我想使用它的时候还没有完全启动。不过,你已经回答了这个问题,我知道你有一个解决办法。非常感谢。