2015-09-10 3 views
2

У меня проблемы с попыткой доступа к данным, возвращаемым через ресурс. Похоже, что я не разрешаю обещание перед доступом к данным, так как мои данные включают объект $promise и свойство resolved.Устранение Угловое обещание ресурса

Вот моя служба:

angular.module('sampleApp') 
    .factory('usersService', ['$resource', 
    function($resource) { 
     var base = '/api/users/:userId/'; 
     return $resource(base, {}, { 
     getLimits: {method: 'GET', url: base + 'limits'}, 
     }); 
    }]); 

... и соответствующий код контроллера:

var getUserLimits = function() { 
    usersService.getLimits({ 
    userId: userId 
    }).$promise.then(function(data) { 
    console.log(data); 
    }); 
}; 

Это то, что записывается в моей консоли: enter image description here Что я стремлюсь получить от data - объект, содержащий deposit, spend и withdrawal объектов.

+0

Почему вы не требующие свойства объекта непосредственно: 'data.deposit', 'data.spend',' data.widthdrawal'? –

+1

@SimoEndre Может вызвать проблемы внутри ng-repeat, например, так как это также обеспечит обещание и решение. – Chrillewoodz

+0

Я мог бы это сделать, но это делает мой код менее эффективным. В идеале я хотел бы использовать '_.each' для итерации через« депозит »,« тратить »и« снимать »и выполнять некоторую чистку данных. – MattDionis

ответ

3

на свой обратный вызов, вы можете использовать toJSON() функцию $ ответа ресурсов, так что вы получите простой объект, как вы хотели ...

var getUserLimits = function() { 
    usersService.getLimits({ 
    userId: userId 
    }).$promise.then(function(data) { 
    console.log(data.toJSON()); 
    }); 
}; 
Смежные вопросы