私はangularjsにユーザベースのログインページを持っています。ユーザー名とパスワードが入力されると、URLが作成され、urlはID(数字など)を返します。このidに基づいてtab.htmlページが返されます(このページは顧客によって異なります)。私が直面している問題は、ログアウトをクリックするとログインページが表示されますが、まだ戻ってくるオプションがブラウザで利用できることです。つまり、ユーザーがログアウトしても、戻る矢印をクリックして前の機密ページに移動できます。ここでAngularJSでのローカルストレージの作成
は状態が呼び出されるかのコードです:
以下var wc = angular.module('wc', ['ui.router', 'am.multiselect', 'angularUtils.directives.dirPagination', 'ui.bootstrap', 'ui.bootstrap.datetimepicker', 'LocalStorageModule']);
wc.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/login');
$stateProvider
.state('login', {
url: '/login',
templateUrl: 'views/login.html',
controller: 'LoginCtrl'
})
.state('logout', {
cache: false,
url: '/logout',
templateUrl: 'views/logout.html',
controller: 'LogoutCtrl'
})
.state('tab', {
url: '/tab/:id',
templateUrl: 'views/tab.html'
});
は、ログアウトして、ログインコントローラのコードです:
以下wc.controller('LogoutCtrl', function ($scope, $http, $location) {
$location.path('/tab');
});
wc.controller('LoginCtrl', function ($scope, $http) {
$scope.submit = function() {
$http.get("urlUserName=" + $scope.person.firstName + "&Password=" + $scope.person.pswd)//Sample Url//
.success(function (data, status, headers, config) {
debugger
$scope.tableData = data;
console.log(data)
if (data == 'Exception') {
window.alert('You have entered wrong username or password');
}
else $state.go('tab', { id: data.Table[0].UserId });
})
}});
は、ログインページ内のフォームのコードです:
<form ng-submit=submit()>
<div class="input-container">
<input type="text" id="Username" ng-model="person.firstName" required="required" />
<label for="Username">Username</label>
<div class="bar"></div>
</div>
<div class="input-container">
<input type="password" id="Password" ng-model="person.pswd" required="required" />
<label for="Password">Password</label>
<div class="bar"></div>
</div>
<div class="submit">
<input type="submit" value="LOGIN">
</div>
</form>
私はlocalStorageを使用しなければならないことを理解し、以下のようにコードに追加しました。
<script src="bower_components/js/angular-local-storage.min.js"></script>
var myApp = angular.module('myApp', ['LocalStorageModule']);
myApp.controller('LoginCtrl', function($scope, localStorageService) {
var lsKeys = localStorageService.keys();//to show all values
function submit(key, val) {
return localStorageService.set(key, val); }
function removeItem(key) {
return localStorageService.remove(key); }
});
しかし、上記のコードは機能しませんでした。ここでローカルストレージを使用するにはどうすればよいですか?誰かが私をここで助けることができれば、感謝します!