2015-04-14 2 views
1

Я пытаюсь добавить 2 сервисов к моему модулю AngularJS. Нужно получить доступ к моим сотрудникам и к одной моей продукции, но я получаю Unknown provider: EmployeeServiceProvider <- EmployeeService <- BookingController.Не удается добавить второй сервисный центр AngularJS

Все Javascript-файлы добавляются в html.

App/Модуль

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 точно такой же, но с продуктом

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 как-то «перезаписывает» мой EmployeeService, потому что он вводится вторым.

Все добавленные JS-файлы в index.html

<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 ответа я еще больше запутался, почему мой код не работает, но, возможно, другой код поможет Сомон Зрительные разницу ,

+0

Добавили ли вы ссылку на EmployeeService.js в index.html? – Sam

+0

Да, да. Но я добавил часть из Index.html, чтобы быть уверенным. – Altoyyr

+0

Отправленный мой ответ. – Sam

ответ

1

В обоих файлах контроллера, извлекать модуль, как это (удаление списка зависимостей) -

var coffeewatchServices = angular.module('coffeewatchServices'); 

Добавить зависимость в ngResource здесь вместо этого, при объявлении в App/модуль -

var coffeewatchServices = angular.module('coffeewatchServices', ['ngResource']); 

Ваш модуль повторно создается во втором вызове в ProductController, поэтому переопределяет предыдущие определения модулей и сервисов.

+0

Мой код у вас дома, но кажется, что вы абсолютно правы. Официальная [Документация] (https://docs.angularjs.org/guide/module) даже имеет свой раздел «Создание против поиска», – Altoyyr

Смежные вопросы