notAChance
notAChance

Reputation: 1430

Undefined variable passing data using service

I have declared my app and have one controller (for demonstration purposes):

    var module = angular.module("app", [])


    module.controller("modalCtrl", ["$scope", function ($scope, dataService) {


    $scope.printEntity = function () {
         console.log(dataService.getEntityArray());
    }

}]);

And a service:

module.factory("dataService", function () {

var entityArrayService = [1,2];

return {

    getEntityArray: function () {
        return entityArrayService;
    }

};

});

When I call $scope.printEntity from my view, I'm always told dataService.getEntityArray() is undefined.

I've loaded the service as a dependency and declared my entityArrayService array outside of my return statement. I've looked high and low for an answer but to no avail. My goal is to share a piece of data between two controllers, but at the minute I can't even use one controller to retrieve data.

Upvotes: 0

Views: 130

Answers (4)

morels
morels

Reputation: 2105

The injection of the service in the controller is missing:

please correct to:

...
module.controller("modalCtrl", ["$scope", "dataService", function ($scope, dataService) {
...

The other code is correct.

Upvotes: 0

hsz
hsz

Reputation: 152206

You didn't inject dataService in your controller. Try with:

module.controller("modalCtrl", ["$scope", "dataService", function ($scope, dataService) {
  // ...
});

Upvotes: 0

Magus
Magus

Reputation: 15104

You are using strict syntax for dependencies declaration. So if you add a parameter to your controller, you must add its declaration too.

module.controller("modalCtrl", ["$scope", "dataService", function ($scope, dataService) { 
    ... 
}

Upvotes: 0

br3w5
br3w5

Reputation: 4583

The service isn't loaded as a dependency. Change this line:

module.controller("modalCtrl", ["$scope", function ($scope, dataService) {

to this:

module.controller("modalCtrl", ["$scope", "dataService", function ($scope, dataService) {

Upvotes: 1

Related Questions