$资源callback(错误和成功)

我正在使用AngularJS 1.1.3来使用新的$资源与承诺…

我怎样才能得到callback? 我以同样的方式尝试使用$ http:

$resource.get('...'). success(function(data, status) { alert(data); }). error(function(data, status) { alert((status); }); 

但是没有“成功”,也没有“错误”function…

我也试过了:

 $resource.get({ id: 10 },function (data) { console.log('success, got data: ', data); }, function (err) { alert('request failed'); }); 

那总是打印“成功,获得数据”即使返回是一个404

任何想法?

谢谢

至于在angulars资源和angular1.2 公关 ,angular将被转换成执行成功/错误检查的更简单的方式。 Resource.get(..)和instance.get()将支持$ promise方法,而不是附加callback函数或$ then方法,这两个方法自然会返回一个promise。

至于angular度1.2,$ promisefunction将生效: $ promise变化

把你的“get”请求改成这样(原始的例子在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*/} ) 
 var MyResource = $resource("/my-end-point/:action", {}, { getSomeStuff: { method:"GET", params: { action:"get-some-stuff" }, isArray: true }, getSingleThing: { method:"GET", params: { action:"get-single-thing" }, isArray: false } }); function MyController(MyResource) { var itemList = MyResource.getSomeStuff({}, function success() {}, function err() {}); // will call: /my-end-point/get-some-stuff // will be array. each object is resource's instance var item = MyResource.getSingleThing({id:123}, function success() {}, function err() {}); // will call: /my-end-point/get-single-thing?id=123 // will be object. an instance of resource } 

另请查看文档: ngResource中的示例