Bouncer00
Bouncer00

Reputation: 123

Read JSON with Angular, undefined service

I am trying to read a JSON data from a file using angular factory and service. But Angular can't see my defined service. Here is my factory:

//jsonService.js
angular.module('jsonService', ['ngResource'])
.factory('JsonService', function($resource) {
    alert($resource)
    return $resource('example.json',{}, {
        getData: {method:'GET', isArray: false}
    });
});

And my controller:

//app.js
'use strict';

angular.module('myApp', [
'ngRoute',
'myApp.view1',
'myApp.view2',
'myApp.version',
'jsonService'
]).config(['$routeProvider', function($routeProvider) {
   $routeProvider.otherwise({redirectTo: '/view1'});
}]).
controller('mainController', ['JsonService', function($scope, JsonService){
    JsonService.getData(function(data) {
      console.log("Test");
      $scope.length = data.length;
  })}]);

And I get:

"Error: JsonService is undefined"

Upvotes: 0

Views: 91

Answers (2)

dco
dco

Reputation: 327

You're injecting 'JsonService' as the first parameter of your function, but you are using the JsonService as the 2nd parameter of your function.

Should be ['JsonService', '$scope', function($scope, JsonService){ or if $scope not needed then ['JsonService', function(JsonService){

Upvotes: 3

Sridhar Chidurala
Sridhar Chidurala

Reputation: 576

This line in app.js should look like

controller('mainController', ['$scope','JsonService', function($scope, JsonService){

Upvotes: 1

Related Questions