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

Posted

技术标签:

【中文标题】错误:[$injector:unpr] 未知提供者:$localStorageProvider <- $localStorage <- login【英文标题】:Error: [$injector:unpr] Unknown provider: $localStorageProvider <- $localStorage <- login 【发布时间】:2018-07-23 09:02:53 【问题描述】:

嘿,我正在 ionic 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');
                
            );
        
    
)

如果我使用会话存储而不是本地存储,一切正常。但我只想让人们不再登录我的应用程序。

谢谢

【问题讨论】:

【参考方案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

【讨论】:

已使用该脚本,但仍显示错误未知提供程序。 你能提供一个plunker吗 对不起,我仍然在控制器参数中使用 $localstorage,并且在删除该参数后它现在可以工作了!谢谢!

以上是关于错误:[$injector:unpr] 未知提供者:$localStorageProvider <- $localStorage <- login的主要内容,如果未能解决你的问题,请参考以下文章

错误:[$injector:unpr] 未知提供者:$routeProvider,无法实例化模块 myApp,原因是

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

未捕获的错误:[$injector:unpr] 未知提供程序:$cordovaPushV5Provider <- $cordovaPushV5

未知提供者:$routeParamsProvider <- $routeParams

正则表达式测试作为属性的指令实现错误 - 验证(打字稿+角度)

不要在角度模态中保存范围更改