【发布时间】:2013-11-15 18:38:15
【问题描述】:
假设这样的服务:
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 + 参数:
http://localhost:9000/rest/usersettings/bob
问题,为什么我有: {"$promise":{},"$resolved":false}
如果我的 GET 请求导致从服务器返回 json 响应:{"username":"bob","email":"bob@bobs.com"},那么我希望我的 scope.user 被数据填充。
我是否应该等待以某种方式承诺已准备好/已解决?
【问题讨论】:
-
修改Resource并添加拦截器,无需$promise和$resolved即可获取数据。我在这里展示了这种方法:stackoverflow.com/a/22807840/592062