错误:[$ injector:unpr]未知提供者:$ localStorageProvider< - $ localStorage< - login

时间:2018-02-13 04:03:22

标签: javascript jquery angularjs ionic-framework

嘿,我正在离子1中登录...我无法将我的身份验证保存在本地存储上,在我执行此本地存储之前,我使用了会话存储,但每次人们都想打开我的应用程序再次,它应该再次登录..

这是我的控制员。

.controller('login', function($scope, $http, $ionicPopup, $state, $ionicHistory, $localStorage, $window) {
    // localhost
    var baseUrl = 'http://developing/alhikmah_api/v1/mobile/auth/login';
    $scope.showAlert = function(msg) {
        $ionicPopup.alert({
            title: msg.title,
            template: msg.message,
            okText: 'Baik',
            okType: 'button-positive'
        })
    }

    if ($localStorage.getItem('nis') !== null && $localStorage.getItem('token') !== null) {
        $scope.showAlert({
            title: "Pesan",
            message: "Selamat Datang Kembali :)"
        });
        $state.go('tab.home');
    }
    $scope.login = function() {
        if (!$scope.login.nis) {
            $scope.showAlert({
                title: "Informasi",
                message: "Nomor Induk Santri Harap di Isi !"
            })
        } else if (!$scope.login.pass) {
            $scope.showAlert({
                title: "Informasi",
                message: "password mohon diisi"
            })

        } else {

            $http.post(baseUrl, {
                username: $scope.login.nis,
                password: $scope.login.pass,
                role: "santri"
            }).success(function(data) {
                console.log(data);
                if (data.success == false) {
                    $scope.showAlert({
                        title: "Information",
                        message: data.message
                    })
                    $scope.login.nis = '';
                    $scope.login.pass = '';
                } else {
                    $localStorage.setItem('id', data.data[0].id);
                    $localStorage.setItem('nis', data.data[0].username);
                    $localStorage.setItem('token', data.token);
                    $scope.showAlert({
                        title: "Information",
                        message: data.message
                    })
                    $state.go('tab.home');
                }
            });
        }
    }
})

如果我使用sessionstorage而不是localstorage,一切正常。但我想要的只是让人们不再登录我的应用程序。

感谢

1 个答案:

答案 0 :(得分:1)

我假设您指的是 ngStorage 模块

像这样使用 ngStorage js文件(确保在加载angularjs后加载它,注意脚本标记的顺序):

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.1/angular.min.js"></script>

<script type="text/javascript" src="https://cdn.jsdelivr.net/ngstorage/0.3.6/ngStorage.min.js>

然后您可以在控制器中使用$ localStorage,如果不使用 $window.localStorage