ses ses - 1 year ago 61
JSON Question

AngularJS using $resource service. Promise is not resolved by GET request

Let's say a service like this:

services.factory('User', function($resource){
return $resource('/rest/usersettings/:username', {}, {
get: {method: 'GET'},
update: {method: 'POST'}

So it is supposed to be used like this:

scope.user = User.get( {username: 'bob'} ); // GET

console.log( JSON.stringify(scope.user) ) // {"$promise":{},"$resolved":false}

So, when I send GET request, it goes OK, building this ur + params:


Question, why I have:

If my GET request leads to json-response back from the server:
then I'm expecting to have my
filled by data.

Should I wait somehow promise is ready / resolved ?

Answer Source

User.get( {username: 'bob'} ) does not return your actual data immediately. It returns something will hold your data when the ajax returns. On that (the $promise), you can register an additional callback to log your data.

You can change your code to:

   scope.user = User.get( {username: 'bob'}  );    // GET
   scope.user.$promise.then(function(data) {