ag-grid 3.3.3:“onModelUpdated”事件未定义

时间:2017-08-08 16:44:44

标签: angularjs ag-grid

我正在使用ag-grid 3.3.3 with angular。

以下工作正常:

$scope.myGrid = {
    rowData: $scope.data,
    columnDefs: [...],
    onModelUpdated: function(event) {
         this.api.setFloatingBottomRowData([boxes: 0, weight: 0]);
    }
};

但我想在其他网格上重用onModelUpdated内的代码......

所以我创建了一个像这样的角度工厂:

angular.module('myApp').factory('MyFactory', ['$filter', function($filter) {
    return {
        onModelUpdated: function(event) {
            //console.log(event.api);
            event.api.setFloatingBottomRowData([boxes: 0, weight: 0]);
        }
    }
}]);

我正试图像这样使用它:

$scope.myGrid = {
    rowData: $scope.data,
    columnDefs: [...],
    onModelUpdated: MyFactory.onModelUpdated
};

但我正在接受undefined活动!

活动内容是什么?

当我这样做时:console.log(event)我得到一个纯粹的js对象......

如何重用我的代码?

1 个答案:

答案 0 :(得分:0)

Duh,有时我需要在StackOverflow中询问是为了照亮自己。

我最终这样做了:

厂:

   ...
    eventsTableOpenDetails[0] = openBtn; //html image
        eventsTableOpenDetails[1] = nTr;     // current inner tr
    .....

        if(eventsTable.fnIsOpen(nTr)){
            openBtn.src = "images/details_open.png";
            eventsTable.fnClose(nTr);
        }
        else {
            var aData = eventsTable.fnGetData(nTr);
            var sOut = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px; border: 1px solid black; width: 100%; word-wrap:break-word;table-layout: fixed;">';
            sOut += '<tr><td style="width:10%">Cnt:</td><td>' + aData[1] + '</td></tr>';
            sOut += '<tr><td style="width:10%">Time:</td><td>' + aData[2] + '</td></tr>';
            sOut += '<tr><td style="width:10%">Type:</td><td>' + aData[3] + '</td></tr>';
            //sOut += '<tr><td style="width:10%">Field 5:</td><td>' + aData[5] + '</td></tr>';
            sOut += '<tr><td style="width:10%">Details:</td><td><pre>' + aData[6] + '</pre></td></tr>';
            sOut += '<tr><td style="width:10%"></td><td></td></tr>';
            sOut += '<tr><td style="width:10%"></td><td><button id="btnClientInject" class="btn btn-warning pull-right" onclick="injectData( ' + position + ' );" >Inject</button></td></tr>';
            sOut += '</table>';


            openBtn.src = "images/details_close.png";
            eventsTable.fnOpen(nTr, sOut, 'details');

        }

格:

angular.module('myApp').factory('MyFactory', ['$filter', function($filter) {
    return {
        onModelUpdated: function(grid) {
            grid.api.setFloatingBottomRowData([boxes: 0, weight: 0]);
        }
    }
}]);