2013-09-19 2 views
1

Я обновляю строку данных сетки из всплывающей формы jQeuryUI. После использования обновленной базы данных на стороне сервера Ajax я обновил строку данных в массиве данных. но сетка по-прежнему остается неизменной. Кажется, arry и сетка потеряли синхронизацию.ng-grid потеряла синхронизацию с базовыми данными

  $.ajax({ 
       type: "PUT", 
       url: "/api/WebAPIAdminStaff", 
       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.$apply(function() { 
          scope.myData[index].FirstName = paramFromView.FirstName; 
         }); 
        } 
       } 
      }); 

Есть ли неправильный код с этим кодом? На самом деле это нужно! большое спасибо!

ответ

0

Я должен закончить с удалением строки и добавить новую строку снова с обновленными данными.

  $.ajax({ 
       type: "PUT", 
       url: "/api/WebAPIAdminStaff", 
       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); 
         }); 
         scope.$apply(function() { 
          scope.myData.splice(index, 0, result); 
         }); 
         setTimeout(selectARow, 0); 
         function selectARow() { 
          scope.$apply(function() { 
           scope.gridOptions.selectItem(index, true); 
          }); 
         }; 
        } 
       } 
      }); 
Смежные вопросы