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的数据被填满。
我是否应该以某种方式等待诺言已经准备就绪/已解决?