【问题标题】:AngularJs: use cookies inside custom serviceAngularJs:在自定义服务中使用 cookie
【发布时间】:2016-08-22 00:05:03
【问题描述】:

我尝试在自定义服务中使用 Angular cookie,但出现错误: 未知提供者:ngCookiesProvider

我将模块、控制器和服务存储在单独的文件中。

控制器:

    (function() {
    'use strict';

    angular
        .module('app')
        .controller('AuthController', AuthController);

    AuthController.$inject = ['$scope', '$http', '$location', 'checkLoginService'];

    function AuthController($scope, $http, $location, checkLoginService) {
        /* jshint validthis:true */
        var vm = this;
        vm.title = 'AuthController';

        $scope.login = function(user) {
            /*logic*/
        }

        $scope.checklogin = function () {
            if (checkLoginService.checkLogin()) {
                /*logic*/
            }
        }

        $scope.checklogin();
    }
})();

服务:

    (function () {
    'use strict';

    angular
        .module('app')
        .service('checkLoginService', ['ngCookies', checkLoginService]);

    checkLoginService.$inject = ['$http'];

    function checkLoginService($http, $cookies) {
        return {
            checkLogin: function () {
                /*logic*/
            }
        }
    }
})();

【问题讨论】:

    标签: javascript angularjs cookies angular-cookies


    【解决方案1】:

    ngCookies 是模块而不是依赖名,你应该在模块依赖中注入ngCookies 并使用$cookies 来获取cookie 对象

    //somewhere in app.js
    angular.module('app', ['otherModules', ..... , 'ngCookies'])
    

    还在 checkLoginService $inject 数组中添加 $cookies 缺少的依赖项。

    angular.module('app')
    .service('checkLoginService', ['$cookies', checkLoginService]);
    checkLoginService.$inject = ['$http', '$cookies'];
    function checkLoginService($http, $cookies) {
        return {
            checkLogin: function () {
                /*logic*/
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-01
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      相关资源
      最近更新 更多