In der Angular SPA-Anwendung wird der Anmeldebildschirm basierend auf der ng-show-Anweisungsvariablen in $ rootScope ein-/ausgeblendet.Angular JS - Anmeldebildschirm auf Seite Refresh (F5) der Anwendung
Wenn sich der Benutzer auf der Startseite befindet und die Seite aktualisiert (F5), wird der Anmeldebildschirm angezeigt, während die Seite "Complete" aktualisiert wird und den Wert des Stammbereichsvariablen verloren hat.
Wie behebt man dieses Problem?
Codebeispiel ::
<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;
});
Das funktionierte für mich Schritte, denen ich folgte. 1) 2) füge 'ngCookies' eckiges Modul hinzu 3) füge $ cookies zum Controller hinzu 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} sonst { \t \t \t $ rootScope.showLogin = true; \t \t \t console.log ("add cookie"); \t \t \t $ cookies.put ('showLogin', true); \t \t} – Madhu