@Time_Lords

Unknown provider в angularjs. Почему возникает ошибка?

Пытаюсь написать простой сайт с использованием angularjs 1.3.15, но никак не могу заставить контроллер использовать сервис.

Структура приложения такая
'use strict';

var servicesModule = angular.module('servicesModule', []);
var componentsModule = angular.module('componentsModule', []);
var controllersModule = angular.module('controllersModule', ['servicesModule', 'componentsModule']);

var appModule = angular.module('appModule', ['ngRoute', 'servicesModule', 'componentsModule']);

appModule.config(['$routeProvider', function($routeProvider) {
	$routeProvider.
		when('/sellings', {templateUrl: 'screens/SellingsScreen/SellingScreen.html', controller: 'SellingsScreenController'}).
		when('/selling/:id', {templateUrl: 'screens/SellingScreen/SellingScreen.html', controller: 'SellingScreenController'}).
		when('/leasings', {templateUrl: 'screens/LeasingsScreen/LeasingsScreen.html', controller: 'LeasingsScreenController'}).
		when('/leasing/:id', {templateUrl: 'screens/LeasingScreen/LeasingScreen.html', controller: 'LeasingScreenController'}).
		when('/realtors', {templateUrl: 'screens/RealtorsScreen/RealtorsScreen.html', controller: 'RealtorsScreenController'}).
		when('/realtor/:id', {templateUrl: 'screens/RealtorScreen/RealtorScreen.html', controller: 'RealtorScreenController'}).
		otherwise({redirectTo: '/sellings'});
}]);


appModule используется в ng-app. К сожалению, когда происходит переход на "/sellings" появляется ошибка:
Unknown provider: SellingPropertySrvcProvider <- SellingPropertySrvc <- SellingsScreenController


SellingPropertySrvc выглядит так:
'use strict';

servicesModule.factory(['SellingPropertySrvc', function(RESTSrvc) {
	return {
		getAll: function() {
			return RESTSrvc.getPromise({
				method: 'GET',
				url: broker + 'selling-properties'
			});
		},
		get: function(id) {
			return RESTSrvc.getPromise({
				method: 'GET',
				url: broker + 'selling-property/' + id
			});
		}
	};
}]);


Злополучный SellingsScreenContoller:
'use strict';

appModule.controller('SellingsScreenController', ['SellingPropertySrvc', function($scope, SellingPropertySrvc) {
    $scope.columns = [
        {name: 'Район', property: 'region'},
        {name: 'Улица', property: 'street'},
        {name: 'Дом', property: 'house'},
        {name: 'Количество комнат', property: 'rooms'},
        {name: 'Размер квартиры', property: 'size'},
        {name: 'Размер кухни', property: 'kitchen'},
        {name: 'Размер ванной', property: 'bathroom'},
        {name: 'Стоимость квартиры', property: 'cost'}
    ];

    SellingPropertySrvc.getAll().then(
        function(data) {
            $scope.data = data;
        }
    ); 
}]);

Что я забыл указать для использования сервиса в контроллере?
  • Вопрос задан
  • 612 просмотров
Решения вопроса 1
@Time_Lords Автор вопроса
А забыл я мозги, видимо. Сервис должен был быть описан в виде
servicesModule.factory('name', function(RESTSrvc) {
return ....;
});


Квадратные скобки всё портили.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы