Javascript 角度服务未定义
我正在尝试调用服务中的Javascript 角度服务未定义,javascript,angularjs,angularjs-service,Javascript,Angularjs,Angularjs Service,我正在尝试调用服务中的mergeUserList()函数。这是我的控制器,看起来像这样: app.controller('UserManagementController', ['$http','$sessionStorage','api','$modal','$scope','Session', 'divisionService','$filter', function ($http, $sessionStorage, api, $modal, $scope, $state, Session,
mergeUserList()
函数。这是我的控制器,看起来像这样:
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;
});
}]);
我的服务:
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;
});
我的问题是,当我运行代码时,它会显示
TypeError:undefined不是控制器中1
行中的函数。我知道问题不在服务中,因为我在另一个控制器中使用它,并且它在那里工作。如果有一个$state
作为函数参数,它不包含在数组中,请将其更改为:
app.controller('UserManagementController', ['$http','$sessionStorage','api','$modal','$scope', '$state', 'Session', 'divisionService','$filter', function ($http, $sessionStorage, api, $modal, $scope, $state, Session, divisionService, $filter) {
妈的,这是我犯的错误,但非常感谢!我会尽快接受这个答案。