2015-06-29 132 views
1

我正在使用Ajax將項目發送到SharePoint列表,在完成此操作後,我想推送jsonObject以響應項目列表。從ajax延遲響應中獲取jsonObject

在AppController.js

$scope.addListItem = function(listItem){ 
    $.when(SharePointJSOMService.addListItem($scope, ListName, listItem)) 
     .done(function (jsonObject) { 

      //$scope.items.push(jsonObject); 

      if (!$scope.$$phase) { 
       $scope.$apply(); 
      } 

     }) 

     .fail(function (err) { 
      console.info(JSON.stringify(err)); 
     }); 
}; 

Ajax調用

jQuery.ajax({ 
     url: restQueryUrl, 
     type: "POST", 
     data: JSON.stringify(listItem), 
     headers: { 
      "accept": "application/json;odata=verbose", 
      "content-type": "application/json;odata=verbose", 
      "X-RequestDigest": $("#__REQUESTDIGEST").val() 
     }, 
     success: function (data, textStatus, xhr) { 
      deferred.resolve(JSON.parse(data)); 
     }, 
     error: function (xhr, textStatus, errorThrown) { 
      deferred.reject(JSON.stringify(xhr)); 
     } 
    }); 

我希望這是足夠的信息,你能幫助我。 基本上我需要知道的是如何達到我從阿賈克斯回電得到的數據

+0

您可以像訪問對象一樣訪問succes功能中的數據。只需使用data.somevar(注意點)來訪問對象的變量。您可以使用console.log(data)在控制檯中查看對象。但你應該做的是刪除ajax並用angulars替換它$ http https://docs.angularjs.org/api/ng/service/$http –

+0

咋,我可以使用'(JSON.parse(data.d。 ID))'來獲取對象的ID,但這還不夠,我應該爲所有屬性這麼做嗎?似乎是一個不好的方法來做到這一點。我將查看$ hhtp – klskl

+0

爲什麼我無法在「解析」函數中傳遞整個對象?我只能傳遞ID屬性,如下所示:(JSON.parse(data.d.ID)) – klskl

回答

0

不用擔心,我想通了。我在使用「JSON.parse」的方法,在現實中,所有我需要做的就是趕上了:

var id = data.d.ID; 
var created = data.d.Created; 

deferred.resolve(id, created); 

我想我必須創建一個新的「變種」每個屬性我想通過在解決方法,但這很好