ui-网格:global/defaul columnDef

ui-grid: global/defaul columnDef

我想为所有列启用 headerTooltip,我不想为不同 table 的所有列重复此操作。

有没有办法设置全局 columnDef 或覆盖默认值?

如果没有全局方式,我也对按 table 执行此操作的方法感兴趣。

自定义任何 angular 组件的最佳方法是查看源代码,然后编写装饰器,您的应用程序可以在其中修改组件,而无需破解组件源代码。在这种情况下,我们可以看到我们需要更改 GridColumn.prototype.updateColumnDef 函数,它将设置从列 def 复制到列本身。我们设置自己的默认值(如果未定义),然后让未修改的方法执行其操作。这样新的全局默认值仍然可以在单个网格中被覆盖。

angular.module(name).config(
    $provide => {
        $provide.decorator('GridColumn', $delegate => {
            const {updateColumnDef} = $delegate.prototype;
            $delegate.prototype.updateColumnDef = function(colDef, isNew) {
                if(colDef.headerTooltip === undefined)
                    colDef.headerTooltip = true;
                updateColumnDef.call(this, colDef, isNew);
            };
            return $delegate;
        });
    }
});