2013-03-21 78 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); 
    });