2015-09-10 42 views
2

我遇到了試圖訪問通過資源返回的數據的問題。由於我的數據包含$promise對象和resolved屬性,因此我在訪問數據之前似乎沒有解決承諾。解決Angular資源承諾

這裏是我的服務:

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,spendwithdrawal對象。直接

+0

你爲什麼不調用對象的屬性:'data.deposit', 'data.spend','data.widthdrawal'? –

+1

@SimoEndre例如,在ng-repeat內部會導致問題,因爲它也會帶來希望和解決。 – Chrillewoodz

+0

我可以做到這一點,但它使我的代碼效率降低。理想情況下,我想使用'_.each'遍歷'deposit','spend'和'withdraw'並執行一些數據清理。 – MattDionis

回答

3

你的成功回調,您可以使用$資源響應的toJSON()功能,所以你會得到普通對象你想...

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