【发布时间】:2014-05-08 05:43:33
【问题描述】:
我正在尝试为我的 Ember 应用程序中的所有失败路由编写一个处理程序。
文档here 似乎建议我可以在我的 App 对象上创建一个 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 控制台日志触发并且错误模型已设置。
如果我无法访问 Route 的 activate 方法中的错误,那么我在哪里可以访问它?大概我不应该在超时中包装我的逻辑。
【问题讨论】:
标签: javascript ember.js