我有以下代码:
service = $resource('api/data/:id/', {
id: '@id',
}, 'get': {
method: 'GET',
isArray: false
});
当我要求这样的东西时:
var promise = service.get({id:1}, callback).$promise
... $promise
对象的值未定义。有什么问题?
答案 0 :(得分:0)
当您在此阶段引用$promise
对象时,它是一个空引用。
重要的是要意识到调用
$resource
对象方法 立即返回空引用[...]返回数据后 从服务器现有参考填充实际数据
资源调用阶段$promise
对象的行为未定义(没有双关语):
$promise
:创建的原始服务器互动的承诺 这个实例或集合。成功时,使用相同的资源实例解析promise 集合对象,使用服务器中的数据更新。 [...]
失败时,使用http响应对象解析promise, 没有资源属性。
如果您打算对填充的数据执行操作,请在回调中调用实例操作方法。这就是它的完成方式:
var p = service.get({id:1}, function() {
p.$save(); // some action method on the instance e.g. $save
});