我想为我的Ember应用程序中的所有失败路由编写一个处理程序。访问Ember ErrorRoute中的错误模型
文档here似乎表明,我可以让我的应用程序对象的ErrorRoute它会自动转换到当路由上的另一条路线失败。如果路由失败的原因是由于身份验证问题(例如令牌超时)导致的,我想使用它将用户重定向到登录页面。
我的问题是,ErrorRoute里面我似乎没有任何办法来访问被失败的路线返回的错误。我想在将它们重定向到登录屏幕之前检查是否存在身份验证错误,但我不确定如何执行此操作。
这里是我写的测试:
App.ErrorRoute = Ember.Route.extend({
activate: function() {
console.log("MODEL A", this.modelFor('error'));
setInterval(function() {
console.log("MODEL B", this.modelFor('error'));
}.bind(this), 1000);
}
});
当路由被激活时,控制台日志MODEL A undefined
,因为它试图访问模型,这是由于某种原因尚且不明的App.ErrorController 。在一秒钟后,MODEL B
控制台日志触发并且错误模型已设置。
如果我不能在路径的activate
方法访问错误,那么我在哪里可以访问它?据推测,我不应该把我的逻辑超时。
这工作就像一个魅力,感谢ppcano。 我不知道为什么官方指南建议使用ErrorRoute重定向到登录屏幕。这对我来说更有意义。 –