我现在使用本教程创建了一个简单的身份验证:
http://www.embercasts.com/episodes/client-side-authentication-part-1
所以我创建了 AuthenticatedRoute,所有其他需要登录用户的路由都在扩展 AuthenticatedRoute。
在 beforeModel 中,我检查用户是否已登录。如果他没有登录,我会调用:this.transitionTo("login")
。
我现在的问题是:我怎样才能将整个登录表单放在面板中?我的想法是在 AuthenticatedRoute -> beforeModel 事件中打开面板,如果登录成功,请重试重定向。
我的想法,但我不知道如何实现它。
App.AuthenticatedRoute = Ember.Route.extend({
beforeModel: function(transition) {
if (!App.get("currentUser")) {
transition.abort(); // loading spinner doesn't disappears if i call this??
this.showLogin(transition);
}
},
showLogin: function(transition) {
var loginController = this.controllerFor("login");
loginController.set("attemptedTransition", transition);
// OPEN PANEL, if the panel gets closed, do nothing. If login successfull, redirect to attemptedTransition and hide the panel.
}
});