2016-03-22 16 views
0

Angular SPAアプリケーションでは、$ rootScopeにあるng-show指示変数に基づいてログイン画面が表示/非表示になります。Angular JS - ページに表示されるログイン画面アプリケーションの更新(F5)

ユーザーがホームページにあり、ページをリフレッシュすると(F5)、「完了」ページがリフレッシュされ、失われたルートスコープの変数値としてログイン画面が表示されます。

この問題を解決するにはどうすればよいですか?

コードサンプル::

<body ng-controller="mainController"> 
    <div class="container" ng-controller="schoolLoginCtrl" 
     ng-show="showLogin"> 
     <form class="form-signin" ng-submit="login()"> 
      <h2 class="form-signin-heading">Login Page</h2> 
      <label for="userName" class="sr-only">User Name</label> <input 
       type="text" id="userName" ng-model="user.userName" 
       class="form-control" placeholder="User Name" required autofocus> 
      <label for="inputPassword" class="sr-only">Password</label> <input 
       type="password" id="inputPassword" ng-model="user.password" 
       class="form-control" placeholder="Password" required> 
      <div class="alert alert-danger">{{errorMsg}}</div> 
      <button class="btn btn-lg btn-primary btn-block" type="submit">Sign 
       in</button> 
     </form> 
    </div> 

    <div class="container" ng-show="!showLogin"> 
     <div ng-view></div> 
    </div> 


.controller('mainController', function($scope, $rootScope, 
     $location) { 
    $rootScope.showLogin = true; 
}); 

答えて

0

使用ngcookieまたはpouchdbかのlocalStorageストア・ユーザー・セッションに

これはあなたhttps://github.com/sahat/satellizer

+0

これは私にとってはうまくいったステップです。 2) 'ngCookies'角度モジュールを追加します。 3)コントローラーに$ cookiesを追加します。 4)if($ cookies.get( ' showLogin ')!== undefined){ \t \t \t console.log( "update cookie"); \t \t \t $ rootScope.showLogin = $ cookies.get( 'showLogin'); \t \t \t $ cookies.put( 'showLogin'、$ cookies.get( 'showLogin')); \t \t}他{ \t \t \t $ rootScope.showLogin =はtrue。 \t \t \t console.log( "add cookie"); \t \t \t $ cookies.put( 'showLogin'、true); \t \t} – Madhu

0

を助けることができるあなたは、ステートフルストレージ機能のいくつかの種類を実装する必要があります。これは、$cookiesまたはローカルストレージを使用して実行できます(これには多くのサードパーティの実装があります)。

0

ページを更新するたびに、すべてのjavascriptとその他のリソースが再度ロードされるため、angle_sは基本的に初期値である$rootScopeを再初期化し、バインドされたすべてが失われます。

ご使用のケースや要件に応じて、ウェブストレージ(ローカル/セッションストレージ)またはCookieを使用することをお勧めします。