$resource回调(错误和成功)
$resource callback (error and success)
我正在使用AngularJS 1.1.3来使用新的$资源并承诺。。。
我如何从中获得回拨?我尝试了与$http:相同的方法
$resource.get('...').
success(function(data, status) {
alert(data);
}).
error(function(data, status) {
alert((status);
});
但既没有"成功",也没有"错误"功能。。。
我也试过:
$resource.get({ id: 10 },function (data) {
console.log('success, got data: ', data);
}, function (err) {
alert('request failed');
});
它总是打印"success,goted data",即使返回的是404。。。
知道吗?
感谢
从angular资源和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*/}
)
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
双向
var resource = $resource("");
resource.$promise.then(function(data){
// do stuff success
}, function(error){
//do stuff error
});
其他方式
var resource = $resource("");
resource({}, function success(data){
//do stuff
}, function error(error){
//do stuff
}
相关文章:
- 解析云代码错误:解析.错误{代码:141,消息:“未调用成功/错误”}
- 解析查询.首次成功/错误 间歇性不调用回调
- 未调用成功/错误
- 当 AJAX 响应成功时清除 jquery 成功/错误消息 span 类
- 在 AngularJS 中声明一个承诺,并带有命名的成功/错误回调
- JQuery - 不要在按钮成功/错误时添加悬停类
- jQuery:在成功/错误中使用延迟对象(ajaxSetup 选项)
- 创建一个成功/错误的承诺,例如像ajax
- jquery.couchdb.js Ajax 成功/错误未被调用
- 未调用成功/错误 - 解析代码 141
- 处理开机自检后从 Angular 控制器到指令的成功/错误 DOM 操作
- node.js未找到解析成功/错误,未定义响应
- 使用JQuery以不可见的方式调用URL并返回成功/错误标志
- 解析云代码嵌套查询时未调用代码141成功/错误消息
- 表单提交的成功/错误信息没有显示
- 如何绑定引导加载按钮成功/错误在表单提交
- Ajax响应给出数据成功错误
- 在'fetch'之后没有调用成功/错误回调;(Backbone.Collection)
- 主干:正确的传递方式'this'在成功/错误回调中引用匿名函数
- jquery' ajax的哪个部分(成功/错误)接收到重定向状态码?