AngularJS使用$ resource服务GET请求无法解决承诺

【字号: 日期:2024-04-09浏览:28作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决AngularJS使用$ resource服务GET请求无法解决承诺?

User.get( {username: ’bob’})不会立即返回您的实际数据。当ajax返回时,它返回的内容将保存您的数据。在那个($promise)上,您可以注册一个附加的回调来记录您的数据。

您可以将代码更改为:

scope.user = User.get( {username: ’bob’} ); // GET scope.user.$promise.then(function(data) { console.log(data); });解决方法

假设这样的服务:

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

所以应该这样使用:

scope.user = User.get( {username: ’bob’} ); // GETconsole.log( JSON.stringify(scope.user) ) // {'$promise':{},'$resolved':false}

因此,当我发送GET请求时,一切正常,构建了ur + params:

http://localhost:9000/rest/usersettings/bob

问题,为什么我有: {'$promise':{},'$resolved':false}

如果我的GET请求导致从服务器返回的json-response:{'username':'bob','email':'bob@bobs.com'}那么我希望我scope.user的数据被填满。

我是否应该以某种方式等待诺言已经准备就绪/已解决?

相关文章: