Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:调用save()后取消覆盖$resource对象的值;_Javascript_Angularjs_Rest - Fatal编程技术网

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“}