我想为所有列启用headerTooltip
,并且我不想为不同表格的所有列重复此操作。
有没有办法设置全局columnDef或覆盖默认值?
如果没有全球化的方式,我也有兴趣以每桌为基础这样做。
答案 0 :(得分:2)
自定义任何角度组件的最佳方法是查看源代码,然后编写一个装饰器,您的应用程序可以在其中修改组件而无需破解组件源。在这种情况下,我们可以看到我们需要更改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;
});
}
});