Celia
Celia

Reputation: 39

Angularjs - Can not load service returned value to $scope

I'm using angularjs and I am trying to parse a value from a service to my $scope controller. The problem is that is loading first the $scope and then the service. As a result me my scope is always undefinied. I tried many solutions that I found by no-one is worked for me. Can anyone help me please? My service:

'use strict';
angular.module('myApp')
    .service('getCategoriesService', function ($rootScope) {

        getCategories = function () {
            var categoriesByLocation = 1;      
            return categoriesByLocation;
        };

and my controller:

angular.module("myApp")
  .controller('MyCtrl', function ($scope,getCategoriesService) {
         $scope.resultCategory = getCategoriesService.getCategories();
         });

Upvotes: 0

Views: 24

Answers (2)

Sachila Ranawaka
Sachila Ranawaka

Reputation: 41387

Use the this. when declaring a function in a service.

.service('getCategoriesService', function ($rootScope) {

        this.getCategories = function () {
            var categoriesByLocation = 1;      
            return categoriesByLocation;
        };

  })

demo

var app = angular.module("myApp",[]);
app.controller('MyCtrl', function ($scope,getCategoriesService) {
         $scope.resultCategory = getCategoriesService.getCategories();
 });
 app.service('getCategoriesService', function ($rootScope) {
    
        this.getCategories = function () {
            var categoriesByLocation = 1;      
            return categoriesByLocation;
        };
        
  })
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
  {{resultCategory}}
</div>

Upvotes: 1

Sajeetharan
Sajeetharan

Reputation: 222522

Change it as

angular.module("myApp")
  .controller('MyCtrl', function ($scope,getCategoriesService) {
        getCategoriesService.getCategories().then((function (d) {
         $scope.resultCategory = d; 
     }
 });

Upvotes: 0

Related Questions