不是 AngularJs 中的函数错误
Not a Function Error in AngularJs
每当我尝试向我的控制器和服务添加 "new" 函数时,我都会收到此错误:
错误:[$injector:unpr] 未知提供者:companyServiceProvider <- companyService <- CompanyController
我尝试了几次该函数的某些部分,然后它奇迹般地开始工作(最后一次我所做的只是更改函数的名称)。一定有办法防止这种情况发生,但我这辈子都想不出来。
这是我的控制器代码片段:
myApp.controller("CompanyController", function($scope, $timeout, companyService){
$scope.SelectedCompanyId = '';
$scope.form = {};
$scope.lastState = true;
pass = 0;
$scope.addedStates = [];
getCompanies();
function getCompanies() {
companyService.getCompanies()
.success(function (data) {
$scope.companies = data;
})
.error(function (error) {
$scope.status = 'Unable to load customer data: ' + error.message;
});
};
getModules();
function getModules() {
companyService.getModules()
.success(function (data) {
$scope.modules = data;
})
.error(function (error) {
$scope.status = 'Unable to load Dashboard Modules: ' + error.message;
});
};
getModuleColors();
function getModuleColors() {
companyService.getModuleColors()
.success(function (data) {
$scope.colors = data;
})
.error(function (error) {
$scope.status = 'Unable to load Dashboard Modules: ' + error.message;
});
};
这是我的服务片段:
angular.module('dashboardManagement')
.service('companyService'(), [
'$http', function ($http) {
//this.selectedCompanyId = null;
this.getCompanies = function () {
return $http.get('/Home/GetAllCompanies');
};
this.getModules = function () {
return $http.get('/Home/GetDashboardModules');
};
this.getModuleColors = function () {
return $http.get('/Home/GetModuleColors');
};
this.getCurrentModules = function (companyId) {
//this.selectedCompanyId = companyId;
return $http.get('/Home/GetCurrentModules?companyId=' + companyId);
};
现在抛出错误的函数是 "getModuleColors" 函数,因为它是最后添加的函数。
其他功能正常。有人可以告诉我这是怎么回事吗?
非常感谢任何帮助。
这是你的代码:
https://jsfiddle.net/afv4t8h2/1/
您需要将服务脚本放在控制器脚本之前,并且您的代码有一个小错误:
<li ng-repeat="region in serviceRegions">{{region.}}</li>
这是一个未结束的 angular 表达式...正确为 {{ region }}
每当我尝试向我的控制器和服务添加 "new" 函数时,我都会收到此错误: 错误:[$injector:unpr] 未知提供者:companyServiceProvider <- companyService <- CompanyController
我尝试了几次该函数的某些部分,然后它奇迹般地开始工作(最后一次我所做的只是更改函数的名称)。一定有办法防止这种情况发生,但我这辈子都想不出来。
这是我的控制器代码片段:
myApp.controller("CompanyController", function($scope, $timeout, companyService){
$scope.SelectedCompanyId = '';
$scope.form = {};
$scope.lastState = true;
pass = 0;
$scope.addedStates = [];
getCompanies();
function getCompanies() {
companyService.getCompanies()
.success(function (data) {
$scope.companies = data;
})
.error(function (error) {
$scope.status = 'Unable to load customer data: ' + error.message;
});
};
getModules();
function getModules() {
companyService.getModules()
.success(function (data) {
$scope.modules = data;
})
.error(function (error) {
$scope.status = 'Unable to load Dashboard Modules: ' + error.message;
});
};
getModuleColors();
function getModuleColors() {
companyService.getModuleColors()
.success(function (data) {
$scope.colors = data;
})
.error(function (error) {
$scope.status = 'Unable to load Dashboard Modules: ' + error.message;
});
};
这是我的服务片段:
angular.module('dashboardManagement')
.service('companyService'(), [
'$http', function ($http) {
//this.selectedCompanyId = null;
this.getCompanies = function () {
return $http.get('/Home/GetAllCompanies');
};
this.getModules = function () {
return $http.get('/Home/GetDashboardModules');
};
this.getModuleColors = function () {
return $http.get('/Home/GetModuleColors');
};
this.getCurrentModules = function (companyId) {
//this.selectedCompanyId = companyId;
return $http.get('/Home/GetCurrentModules?companyId=' + companyId);
};
现在抛出错误的函数是 "getModuleColors" 函数,因为它是最后添加的函数。
其他功能正常。有人可以告诉我这是怎么回事吗?
非常感谢任何帮助。
这是你的代码:
https://jsfiddle.net/afv4t8h2/1/
您需要将服务脚本放在控制器脚本之前,并且您的代码有一个小错误:
<li ng-repeat="region in serviceRegions">{{region.}}</li>
这是一个未结束的 angular 表达式...正确为 {{ region }}