2017-08-08 73 views
0

我正在使用ag-grid 3.3.3 with angular。ag-grid 3.3.3:“onModelUpdated”事件未定义

下正常工作:

$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对象...

我怎么能重复使用我的代码?

回答

0

呃,有时我需要在StackOverflow中询问才能说明自己。

我落得这样做:

厂:

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

格:

$scope.myGrid = { 
    rowData: $scope.data, 
    columnDefs: [...], 
    onModelUpdated: function(event) { 
     MyFactory.onModelUpdated(this); 
    } 
};