1

I tried to use angular cookies in custom service, but got the error: Unknown provider: ngCookiesProvider <- ngCookies <- checkLoginService

I store module, controllers and services in separate files.

Controller:

    (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();
    }
})();

Service:

    (function () {
    'use strict';

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

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

    function checkLoginService($http, $cookies) {
        return {
            checkLogin: function () {
                /*logic*/
            }
        }
    }
})();
Paul Rooney
  • 20,879
  • 9
  • 40
  • 61
Roman
  • 35
  • 6

1 Answers1

1

ngCookies is module not a dependency name, you should inject ngCookies in module dependency and use $cookies to get cookie object

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

Also add $cookies missing dependency inside a checkLoginService $inject array.

angular.module('app')
.service('checkLoginService', ['$cookies', checkLoginService]);
checkLoginService.$inject = ['$http', '$cookies'];
function checkLoginService($http, $cookies) {
    return {
        checkLogin: function () {
            /*logic*/
        }
    }
}
Pankaj Parkar
  • 134,766
  • 23
  • 234
  • 299