1

このチュートリアルで簡単な認証を作成しました。

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

1 に答える 1

1

このページの下部では、トランジションを保持して後で再試行する方法について説明しています。

このページでは、モーダルのセットアップ方法について説明しますが、最近のバージョンの emberdisconnectOutletでは、空のテンプレートをモーダル アウトレットにレンダリングするのではなく、呼び出す必要があります。

于 2013-10-01T09:09:47.093 に答える