无法添加第二个 AngularJS 服务工厂
Cannot add second AngularJS Service Factory
我尝试向我的 AngularJS 模块添加 2 个服务。一个应该访问我的员工和一个我的产品,但我得到一个 Unknown provider: EmployeeServiceProvider <- EmployeeService <- BookingController
.
所有Javascript-文件都添加到html。
App/Module
var coffeewatchApp = angular.module('coffeewatchApp', [
'ngRoute',
'coffeewatchControllers',
'coffeewatchServices'
]);
//Routing
var coffeewatchControllers = angular.module('coffeewatchControllers', []);
var coffeewatchServices = angular.module('coffeewatchServices', []);
EmployeeService.js
var coffeewatchServices = angular.module('coffeewatchServices', ['ngResource']);
var employeeServiceUrlPart = "EmployeeService/";
coffeewatchServices.factory('EmployeeService', ['$resource',
function($resource){
return $resource('all/', {}, {
all: {method:'GET',url:REST_BASEURL+employeeServiceUrlPart+"all", params:{}, isArray:true}
});
}]);
ProductController.js 与 Product
完全相同
var coffeewatchServices = angular.module('coffeewatchServices', ['ngResource']);
var productServiceUrlPart = "ProductService/";
coffeewatchServices.factory('ProductService', ['$resource',
function($resource){
return $resource('all/', {}, {
all: {method:'GET',url:REST_BASEURL+productServiceUrlPart+"all", params:{}, isArray:true}
});
}]);
控制器访问两个服务
coffeewatchControllers.controller('BookingController', ['$scope', 'EmployeeService', 'ProductService',
function ($scope, EmployeeService, ProductService) {
$scope.employees = EmployeeService.all();
$scope.products = ProductService.all();
}]);
感谢任何帮助;提前致谢。
EDIT:
我首先实施了 EmployeeService
并且一切正常。
所以我真的不明白为什么添加 ProductService
会杀死我的 EmployeeService
。我唯一能想到的是 ProductService
以某种方式 "overwrites" 我的 EmployeeService
因为它是第二个注入的。
在 index.html
中添加的所有 JS 文件
<script src="js/config/app-config.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers/DashboardController.js"></script>
<script src="js/controllers/StatisticController.js"></script>
<script src="js/controllers/BookingController.js"></script>
<script src="js/services/EmployeeService.js"></script>
<script src="js/services/ProductService.js"></script>
EDITEDIT
在查看 this 答案后,我更加困惑为什么我的代码不起作用,但也许其他代码会帮助某人发现差异。
在你的两个控制器文件中,像这样检索模块(删除依赖列表)-
var coffeewatchServices = angular.module('coffeewatchServices');
改为在 ngResource
中添加依赖项,同时在 App/Module 中声明 -
var coffeewatchServices = angular.module('coffeewatchServices', ['ngResource']);
您的模块将在 ProductController
的第二次调用中重新创建,因此将覆盖之前的模块和服务定义。
我尝试向我的 AngularJS 模块添加 2 个服务。一个应该访问我的员工和一个我的产品,但我得到一个 Unknown provider: EmployeeServiceProvider <- EmployeeService <- BookingController
.
所有Javascript-文件都添加到html。
App/Module
var coffeewatchApp = angular.module('coffeewatchApp', [
'ngRoute',
'coffeewatchControllers',
'coffeewatchServices'
]);
//Routing
var coffeewatchControllers = angular.module('coffeewatchControllers', []);
var coffeewatchServices = angular.module('coffeewatchServices', []);
EmployeeService.js
var coffeewatchServices = angular.module('coffeewatchServices', ['ngResource']);
var employeeServiceUrlPart = "EmployeeService/";
coffeewatchServices.factory('EmployeeService', ['$resource',
function($resource){
return $resource('all/', {}, {
all: {method:'GET',url:REST_BASEURL+employeeServiceUrlPart+"all", params:{}, isArray:true}
});
}]);
ProductController.js 与 Product
完全相同var coffeewatchServices = angular.module('coffeewatchServices', ['ngResource']);
var productServiceUrlPart = "ProductService/";
coffeewatchServices.factory('ProductService', ['$resource',
function($resource){
return $resource('all/', {}, {
all: {method:'GET',url:REST_BASEURL+productServiceUrlPart+"all", params:{}, isArray:true}
});
}]);
控制器访问两个服务
coffeewatchControllers.controller('BookingController', ['$scope', 'EmployeeService', 'ProductService',
function ($scope, EmployeeService, ProductService) {
$scope.employees = EmployeeService.all();
$scope.products = ProductService.all();
}]);
感谢任何帮助;提前致谢。
EDIT:
我首先实施了 EmployeeService
并且一切正常。
所以我真的不明白为什么添加 ProductService
会杀死我的 EmployeeService
。我唯一能想到的是 ProductService
以某种方式 "overwrites" 我的 EmployeeService
因为它是第二个注入的。
在 index.html
中添加的所有 JS 文件<script src="js/config/app-config.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers/DashboardController.js"></script>
<script src="js/controllers/StatisticController.js"></script>
<script src="js/controllers/BookingController.js"></script>
<script src="js/services/EmployeeService.js"></script>
<script src="js/services/ProductService.js"></script>
EDITEDIT
在查看 this 答案后,我更加困惑为什么我的代码不起作用,但也许其他代码会帮助某人发现差异。
在你的两个控制器文件中,像这样检索模块(删除依赖列表)-
var coffeewatchServices = angular.module('coffeewatchServices');
改为在 ngResource
中添加依赖项,同时在 App/Module 中声明 -
var coffeewatchServices = angular.module('coffeewatchServices', ['ngResource']);
您的模块将在 ProductController
的第二次调用中重新创建,因此将覆盖之前的模块和服务定义。