简体   繁体   中英

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???

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()...
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,
  }


});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM