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;
});
}
});
我想为所有列启用 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;
});
}
});