Vishal Vishal - 3 months ago 13
Javascript Question

Provider 'xx' must return a value from $get factory method

Here is my angular service:

angular
.module('myApp')
.factory('partyService', function($http) {
this.fetch = function() {
return $http.get('/api/parties')
.then(function(response) {
return response.data;
});
}
});


I think this service is returning data (or an empty array // not sure)

Then why am I geeting this error:


Error: [$injector:undef] Provider 'partyService' must return a value from $get factory method.


Update:

If I use service instead of factory then I don't get any errors. Why so???

Answer

The error speaks for itself. You must return something in your factory:

var factory = {
  fetch: fetch
};

return factory;

function fetch() {
  return..
}

Then, in your controller:

partyService.fetch()...