Backer
Backer

Reputation: 1114

Angular service is undefined

I'm trying to call the mergeUserList() function that is inside my service. I do this is my controller that looks like this:

app.controller('UserManagementController', ['$http','$sessionStorage','api','$modal','$scope','Session', 'divisionService','$filter', function ($http, $sessionStorage, api, $modal, $scope, $state, Session, divisionService,$filter) {
    divisionService.mergeUserList().then(function(response)
    {
        $scope.users = response;
    });
}]);

And my service:

app.factory("divisionService", function (api, $http, $q) {
    //Organization divisions with division users
    var division = {};
    var divisionArray = [];
    var mergedUserList = [];
    return {
        mergeUserList: function () {
            if (divisionArray == null || divisionArray.length == 0) {
                var list = [];
                var d = $q.defer();
                this.getList().then(function () {
                    divisionArray.forEach(function (y) {
                        y.users.forEach(function (user) {
                            list.push(user);
                        });
                        d.resolve(list);
                    })
                });
                return d.promise;
            }
            else {
                return null;
            }
        }
    };
    return division;
});

My problem is that when i run the code it says TypeError: undefined is not a function in line 1 in the controller. I know for a fact that the problem is not in the service, becuase I use it in another controller, and there it works.

Upvotes: 1

Views: 325

Answers (1)

Michael
Michael

Reputation: 3326

You have one $state as a function argument which is not included in the array, change it to:

app.controller('UserManagementController', ['$http','$sessionStorage','api','$modal','$scope', '$state', 'Session', 'divisionService','$filter', function ($http, $sessionStorage, api, $modal, $scope, $state, Session, divisionService, $filter) {

Upvotes: 1

Related Questions