2013-03-21 58 views
1

返回我有一个基本的CRUD应用程序运行起来,但是我所想要做的是包裹从服务器每个响应有两个产生额外的参数,即AngularJS包装JSON数据从服务器

“错误” =>布尔, 'errorMessage'=> string,'data'=> {whatever data}

这样我就可以处理从服务器发送并返回成功请求的情况,但是由于某种原因数据库无法更新,所以我可以不仅让用户界面与数据库保持同步,还会在失败的更新中向用户显示错误消息。 作为AngularJS期望一个更新的对象的UI将处于同步,如果我回到在发生故障时相同的对象,但不会有失败的情况时,用户可能都不会意识到的问题是什么。

在我的旧应用程序前角(基于jQuery)我可以轻松解码每个响应,如果错误===真实存在的,但在角我似乎错误消息无法JSON数据弄清楚如何做到这一点。

我很可能这里是大错特错,因为我刚刚进入角,因此任何方向将是有益的。

+2

本帖](http://stackoverflow.com/questions/11956827/angularjs-intercept-all-http-json-responses)可能会有帮助。 – Gloopy 2013-03-21 16:35:25

回答

0

建立从angularjs这个HTTP请求和从服务器发回一个响应对象。它获取在Resdata收集

响应对象---> { '错误'=>布尔值, '的errorMessage'=>串, '数据'=> {任何数据}}

。使用Resdata采取行动。

$http({method: 'POST', url:url, data:body}).success(function(Resdata, status, headers, config) { 
     console.log(Resdata); 

     if(Resdata.error == true){ 
      // use Resdata.errorMessage 
     } 
     else if(Resdata.error == false){ 
      // use Resdata.data 
     } 
    }).error(function(Resdata, status, headers, config) { 
     console.log("error:", error); 
    });