作为关于 angulars 资源和 angular 1.2 的 PR,angular 将切换到更简单的方式来执行成功/错误检查。Resource.get(..) 和 instance.get() 都将支持 $promise 方法,而不是附加回调或 $then 方法,这自然会为两者返回一个 Promise。
从 Angular 1.2 开始,$promise 功能将上线:$promise 更改
将您的“获取”请求更改为以下内容(原始示例在 angularjs.org 首页上):
factory('Project', function($resource) {
var Project = $resource('https://api.mongolab.com/api/1/databases' +
'/youraccount/collections/projects/:id',
{ apiKey: 'yourAPIKey' }, {
update: { method: 'PUT' }
}
);
Project.prototype.update = function(cb) {
return Project.update({id: this._id.$oid})
.$promise.then(
//success
function( value ){/*Do something with value*/},
//error
function( error ){/*Do something with error*/}
)
};
Project.prototype.destroy = function(cb) {
return Project.remove({id: this._id.$oid})
.$promise.then(
//success
function( value ){/*Do something with value*/},
//error
function( error ){/*Do something with error*/}
)
};
return Project;
});
在控制器的其他地方,您可以实例化一个资源“项目”实例,您可以在其中使用相同的接口来获取成功和错误:
var myProject = new Project();
myProject.$get({id: 123}).
.$promise.then(
//success
function( value ){/*Do something with value*/},
//error
function( error ){/*Do something with error*/}
)