路线开放式面板/莫代尔 - Ember.JS

时间:2013-09-27 07:29:40

标签: ember.js panel ember-router

我现在使用本教程创建了一个简单的身份验证:

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.
  }
});

1 个答案:

答案 0 :(得分:1)

this page的底部告诉我们如何保持转换并稍后重试。

This page讲述了如何设置模态,尽管在最新版本的ember中你想调用disconnectOutlet而不是将空模板渲染到模态插座中。