T
T
Time_Lords2015-05-31 07:33:07
Angular
Time_Lords, 2015-05-31 07:33:07

unknown provider in angularjs. Why is there an error?

I'm trying to write a simple site using angularjs 1.3.15 but I can't seem to get the controller to use the service.
The structure of the application is

'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 is used in ng-app. Unfortunately, when changing to "/sellings" an error appears:
Unknown provider: SellingPropertySrvcProvider <- SellingPropertySrvc <- SellingsScreenController

SellingPropertySrvc looks like this:
'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
      });
    }
  };
}]);

The ill-fated 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;
        }
    ); 
}]);

What did I forget to specify to use the service in the controller?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
T
Time_Lords, 2015-05-31
@Time_Lords

And I forgot my brain, apparently. The service should have been described as

servicesModule.factory('name', function(RESTSrvc) {
return ....;
});

The square brackets ruined everything.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question