如何解决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'} ); // GET
console.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
的数据被填满。
我是否应该以某种方式等待诺言已经准备就绪/已解决?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。