Reputation: 6378
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???
Upvotes: 8
Views: 10408
Reputation: 3700
angular
.module('myApp')
.factory('partyService', function($http) {
function fetch = function() {
return $http.get('/api/parties')
.then(function(response) {
return response.data;
});
}
function anotherFetch = function() {
return $http.get('/api/parties')
.then(function(response) {
return response.data;
});
}
return {
fetch,
anotherFetch,
}
});
Upvotes: 6
Reputation: 24894
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()...
Upvotes: 5