Angular Grid ag-grid columnDefs 動的に変更 質問する

Angular Grid ag-grid columnDefs 動的に変更 質問する

columnDefs動的な変更に関して問題があります。gridOptions は次のとおりです。

$scope.gridOptions = {
  columnDefs: [],
  enableFilter: true,
  rowData: null,
  rowSelection: 'multiple',
  rowDeselection: true
};

サーバーからデータを取得すると次のようになります。

$scope.customColumns = [];

$http.post('/Home/GetProducts', { tableName: 'TABLE_PRODUCT' }).success(function (data) {
    angular.forEach(data.Columns, function (c) {
        $scope.customColumns.push(
            {
                headerName: c.Name,
                field: c.Value,
                width: c.Width
            }
        );
    });

    $scope.gridOptions.columnDefs = $scope.customColumns;

    $scope.gridOptions.rowData = data.Products;
    $scope.gridOptions.api.onNewRows();
}).error(function () {

});

注: ここで c はサーバーから取得される列オブジェクトです。

列を動的に生成して $scope.gridOptions.columnDefs に割り当てると、グリッドは空白になりますが、$scope.customColumns配列は正しく生成された列オブジェクトで埋められます。これはバグでしょうか、それとも私が何か間違っているのでしょうか。助けてください。

ベストアンサー1

ag-gridでは、gridOptionsの列はグリッドの初期化時に一度だけ使用されます。初期化後に列を変更する場合は、グリッドに通知する必要があります。これは、次の呼び出しによって行われます。gridOptions.api.setColumnDefs()

このAPIメソッドの詳細については、ag-gridドキュメントはこちら

おすすめ記事