2013-09-20 51 views

回答

1

這是HTTP PUT RESTful ajax訪問和更新ng-grid的完整解決方案。

  $.ajax({ 
       type: "PUT", 
       url: "/api/WebAPIService", 
       data: $('#editForm').serialize(), 
       success: function (result) { 
        if (result) { 
         var scope = angular.element($("#ngBody")).scope(); 
         var row = scope.gridOptions.selectedItems[0]; 
         var index = scope.myData.indexOf(row); 
         scope.gridOptions.selectItem(index, false); 
         scope.$apply(function() { 
          scope.myData.splice(index, 1); //delete a row from array 
         }); 
         scope.$apply(function() { 
          scope.myData.splice(index, 0, result); //add a row to the same index 
         }); 
         setTimeout(selectARow, 0); //select the the newly added row 
         function selectARow() { 
          scope.$apply(function() { 
           scope.gridOptions.selectItem(index, true); 
          }); 
         }; 
        } 
       } 
      }); 

這個想法是我們必須分開「刪除」和「添加」。將這兩個步驟放在一個語句(如「scope.myData.splice(index,1,result);」)中看起來更合理。但正如我測試的那樣,它簡單不起作用。另外,我們必須在setTimeout中包裝「select item」,以確保在與「delete and add」相關的所有事情完成後運行。

相關問題