3

I am trying to make an ajax call using $resource and load a datatable upon receiving the data from a server. But when I call a get() then I am getting $promise as undefined. I am using a factory to make the call. Here is my factory :

    app.factory('getAllUsers', [ '$resource', function($resource) {
return $resource('URL', {}, {get : {method : 'GET'}});
}]);

And the controller :

      app.controller('MyController',function($scope,$location,getAllUsers){

        console.log("In controller");

        getAllUsers.get().$promise.then(function(data) {

            loadDatatable(data);
            });


     });

ERROR : getAllUsers.get().$promise is undefined

NOTE : I have included ngResource in my app and angular-resource.js in index.html too.

SoumitraM
  • 67
  • 2
  • 8

3 Answers3

1

The $resource service doesn't return promises in version 1.0.x; be sure to read the correct version of the docs. By default, http://docs.angularjs.org/api/ is for the 1.2.x series, which is currently unstable. Try this version of the api docs: http://code.angularjs.org/1.0.8/docs/api

FMM
  • 4,289
  • 1
  • 25
  • 44
0

Since you are using $resource you can do

 getAllUsers.get({},function(data) {
    loadDatatable(data);
 });
Chandermani
  • 42,589
  • 12
  • 85
  • 88
0

Did you forget to add .json as type of call?

app.factory "User", ["$resource", ($resource) ->
  $resource("/users/:id.json", {id: "@id"}, {update: {method: "PUT"}})
]
Nesha Zoric
  • 6,218
  • 42
  • 34