Javascript AngularJS:调用save()后取消覆盖$resource对象的值;
在这种情况下,当您调用Javascript AngularJS:调用save()后取消覆盖$resource对象的值;,javascript,angularjs,rest,Javascript,Angularjs,Rest,在这种情况下,当您调用save()user对象时,属性将替换为来自服务器的属性 但如果服务器响应如下: var User = $resource( 'http://test/index.php' ); var user = User.get({id:'1'}); // GET: http://test/index.php?id=1 // server returns: { "login":"foo", "name":"bar", "mail":"baz" } user.name =
save()
user对象时,属性将替换为来自服务器的属性
但如果服务器响应如下:
var User = $resource(
'http://test/index.php'
);
var user = User.get({id:'1'});
// GET: http://test/index.php?id=1
// server returns: { "login":"foo", "name":"bar", "mail":"baz" }
user.name = "qux";
user.$save();
// POST: http://test/index.php?id=1
// server returns: { "login":"foo", "name":"bar", "mail":"qux"}
用户对象属性将被覆盖,而包含这些错误的属性错误将出现
是否有方法更改
$resource
的行为?我想检查响应的状态,并在此基础上决定是更新对象的属性还是向用户报告错误。Angular的$resource
旨在与RESTful web服务交互
在RESTfulWeb服务中,如果在保存资源时出错,则应返回适当的HTTP状态(例如,400
)
然后,您可以选择使用错误回调:
{
"errors":{
"login":"too short",
"name":"is already using that name.",
"mail":"invalid email."
}
}
有关错误HTTP状态的完整列表:
Angular的
$resource
旨在与RESTful web服务交互
在RESTfulWeb服务中,如果在保存资源时出错,则应返回适当的HTTP状态(例如,400
)
然后,您可以选择使用错误回调:
{
"errors":{
"login":"too short",
"name":"is already using that name.",
"mail":"invalid email."
}
}
有关错误HTTP状态的完整列表:
如果服务器响应有错误,则您应该将响应状态设置为400-499范围内的某个值(而不是将其保留为200),在这种情况下,$resource服务不会覆盖您的实例。如果服务器响应有错误,则您应该将响应状态设置为400-499范围内的某个值(不要将其保留在200),在这种情况下,$resource服务将不会覆盖您的实例。我希望使用所有服务器响应的状态200,并在响应正文中报告一个错误。例如:
Facebook HTTP状态代码:200{“type”:“OauthException”,“message”:“(#803)您请求的一些别名不存在:foo.bar”}
我想使用所有服务器响应的状态200,并在响应正文中报告一个错误。例如:Facebook HTTP状态代码:200{“type”:“OAutheException”,“message:”(#803)您请求的一些别名不存在:foo.bar“}