AG-GRID & AngularJS - Как редактировать данные извне - PullRequest
0 голосов
/ 24 мая 2018

Я работаю над одностраничным приложением, используя Agularjs, UI-Router и AG-GRID.Я не могу понять, как обновить данные AG-GRID из внешней формы.

Позвольте мне объяснить, из таблицы данных AG-GRID я добавил кнопку, которая будет захватывать данные строки и переносить их на страницу формы.Страница формы будет заполнена данными правильно.Однажды на странице формы, если я пытаюсь отредактировать данные и вернуться на мою главную страницу (где у меня AG-GRID), я не вижу никаких изменений.

Я попытался сделать $ scope.gridOptions.api.refreshCells ();Похоже, что это ничего не делает и не генерирует ошибок.

Вот так выглядит моя установка:

Main_controller:

App.controller('Main_Controller', function ($scope, $http, $filter, $timeout, $mdDialog, $q, $resource, $interval, $mdSidenav, $state, Service) {

    var Buttons = function(params) {
        return '<md-button class="md-icon-button" aria-label="Edit" ng-click="Edit(data)"> <md-icon class="material-icons">mode_edit</md-icon> </md-button>'';
    }

    var columnDefs = [
    { cellRenderer: Buttons, width: 165 },
    { headerName: "Data1", field: "Data1"},
    { headerName: "Data2", field: "Data2"}, 
    ];

    $scope.gridOptions_incident = {
        columnDefs: columnDefs,
        domLayout: 'autoHeight',
        enableFilter: true,
        enableColResize: true,
        enableSorting: true,
        pagination: true,
        paginationPageSize:25,
        animateRows: true,
        headerHeight: headerHeight,
        rowHeight:rowHeight,
        angularCompileRows : true,  
        enableCellChangeFlash: true,
        debug: true,
        rowData: Service.get_data()
    };  

    $scope.Edit = function(data){
        Service.current_incident(data);
        $state.go('OPEN_ExternalForm');
    };  

});

Служба:

GDI_App.factory('Service', function($http, $q, $timeout, $mdDialog, $resource, $window) {
    return{

        get_data: function(){
            var example_data = [
               { "Data1": "123123", "Data2": "15437"  },
               { "Data1": "432234", "Data2": "146"  },
               { "Data1": "45654", "Data2": "3534"  },
               { "Data1": "76587", "Data2": "78978"  },
               { "Data1": "2342", "Data2": "5345878"  },
               { "Data1": "178", "Data2": "34534"  },
               { "Data1": "173838", "Data2": "354534"  },
            ];
            return example_data             
        }
        current_incident: function(data){
          Current.Data = data;
          return Current.Data
        }

    }
});

Контроллер форм:

GDI_App.controller('Form_Controller', function ($scope, $http, $filter, $timeout, $mdDialog, $q, $resource, $interval, $mdSidenav, Service) {

    $scope.Current.Data = Service.current_incident();
    $scope.Submit = function(){

        $http({
            method: 'POST',
            url: REST_URL,
            processData: false,
            contentType: "application/json;odata=verbose",                 
            headers: HEADER_DATA,
            data: $scope.Current.Data
        });   

    }

});

Форма HTML:

I have a very basic HTML form:

<div ng-controller="Form_Controller">
    Data1: <input ng-model="Current.Data.Data1">
    Data2: <input ng-model="Current.Data.Data2">
    <button ng-click="Submit()" type="button">Submit</button>
</div>

Я не совсем уверен, что мне не хватает.Моя конечная цель - иметь возможность редактировать данные из внешних данных и затем синхронизировать их в AG-Grid.

У кого-нибудь есть идея?

1 Ответ

0 голосов
/ 06 декабря 2018

вы можете обновить данные ячейки следующим образом:

  var rowNode = $scope.gridOptions_incident.api.getRowNode(id);
  rowNode.setDataValue('Data2', 'newData');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...