2014-05-20 39 views
2

我想使用AngularJS $資源從我的服務器刪除數據。但是,當我將結果寫入控制檯時,我看不到數據。

但是,當我在Chrome的控制檯中轉到「網絡」時,我在名稱路徑左欄中看到DELETE。當我點擊「信息」時,我在右側面板上看到了五個標籤,在預覽和響應標籤下,我看到了正確的數據,我只是不知道如何在Javascript中查看或檢索這些數據。這裏是JavaScript的服務代碼:

var MyServices = angular.module('MyServicesName', ['ngResource']); 

MyServices.factory('AAAService', function($resource) { 
    return $resource(serverBaseUrl + 'users/:userId/Video/:videoId/', {userId: '@userId', videoId: '@videoId'}, { 
     show: {method: 'GET'}, 
     update: {method: 'PUT', params: {id: '@id'}}, 
     delete: {method: 'DELETE', isArray:false} 
    }); 
}); 

和控制器:

quizcatControllers.controller('BBBCtrl', ['$scope', '$stateParams', '$http', 'AAAService', 
    function($scope, $stateParams, $http, AAAService) { 
$scope.deleteQuestion = function(user, videoId) { 
      AAAService.delete({userId: user, videoId: videoId}, function(a, b) { 
     console.log(a);//Expect to print the data 
     console.log(b); 
}); 

有人建議我的代碼應該如何改變,這樣我可以從響應雖然我的響應數據獲取數據 ?不是數組格式我想知道如何要做到這一點:數組和樣式。

應該是什麼適當的名稱,而不是a和b上下面的行:

AAAService.delete({用戶名:用戶,VIDEOID:VIDEOID},功能(A,B){

UPDATE:

這是結果我成功回調參數的returnValue得到:

0: 「S」
1: 「U」
2: 「C」
3: 「e」 的
4: 「S」
5: 「S」
$承諾:對象
$決心:真實
:資源

回答

3

使用的資源可以是一個有點混亂(至少他們最初對我來說)。

我認爲你的問題在於你的刪除調用沒有使用正確的簽名('GET'方法和'非GET'方法有不同的簽名,在這種情況下,它看起來像你正在發送什麼是用來作爲postData的回調函數(用於成功和錯誤)。您使用的簽名是'GET'方法(它沒有postData)。

您的調用刪除的簽名應該看起來像這樣(參見文檔here):

Resource.action([參數],POSTDATA,[成功],[錯誤])

所以,你可以做這樣的事情:

quizcatControllers.controller('BBBCtrl', ['$scope', '$stateParams', '$http', 'AAAService', 
function($scope, $stateParams, $http, AAAService) { 
    $scope.deleteQuestion = function(user, videoId) { 
     AAAService.delete(
      {userId: user, videoId: videoId}, // parameters 
      {},        // postData, which you don't need for this 
      // success callback 
      function (returnValue, responseHeaders) { 
       // do what you want with the returnValue from the call here 
      }, 
      // error callback 
      function (httpResponse) { 
       // do what you want for error handling here 
      }) 
    }; 
}]); 
+0

謝謝,這解決了一下我的代碼。問題是返回值中的值是Resource類型。我怎樣才能得到真正的價值(一個字符串)? –

+0

您是否試過'AAAService.delete(...)。然後(函數(數據){console.debug(data)})'? – link

+0

@link是。我得到UPDATE –

相關問題