Angular 在ag Grid中自定义材质主题不会';不要对复选框使用强调色

Angular 在ag Grid中自定义材质主题不会';不要对复选框使用强调色,angular,ag-grid,Angular,Ag Grid,当我为ag网格使用标准材质主题时,复选框在选中时会得到粉红色的强调色。 要使用默认材质主题,我在my styles.scss中包含以下内容: @import "~ag-grid/dist/styles/ag-grid.css"; @import "~ag-grid/dist/styles/ag-theme-material.css"; 但是当我想覆盖主题颜色时,我会遵循ag网格上的指导原则。该复选框从不获取强调色,并且始终为黑色、选中和未选中 my styles.scss中的代码如下所示: $

当我为ag网格使用标准材质主题时,复选框在选中时会得到粉红色的强调色。 要使用默认材质主题,我在my styles.scss中包含以下内容:

@import "~ag-grid/dist/styles/ag-grid.css";
@import "~ag-grid/dist/styles/ag-theme-material.css";
但是当我想覆盖主题颜色时,我会遵循ag网格上的指导原则。该复选框从不获取强调色,并且始终为黑色、选中和未选中

my styles.scss中的代码如下所示:

$ag-icons-path: '~ag-grid/src/styles/icons/';
$ag-mat-icons-path: '~ag-grid/src/styles/material-icons/';

// Change the primary / accent colors
$primary-color: red;
$accent-color: green;

@import '~ag-grid/src/styles/ag-grid.scss';
@import '~ag-grid/src/styles/ag-theme-material.scss';
即使我没有设置主色和强调色,复选框仍为黑色。应该是粉红色的,因为这是默认颜色。 在导入主题的.css文件和导入主题的.scss文件时,似乎存在差异


有人能帮我吗?或者有没有办法通过ag Grid为此创建错误请求?

v21更新:

ag grid的21+版本不再使用SVG作为图标

在AGGrid的v21中,我们更改了图标在网格中的设置方式。在v21之前,图标是svg文件,您可以通过SASS文件中的“$icons path”变量覆盖这些文件。v21使用WebFont和CSS作为图标,这是允许图标主题化的最佳方式

这意味着可以通过覆盖颜色属性轻松更改颜色

例如:

原始答案:

我选择在CSS中创建一个新的SVG定义来解决这个问题。我遵循了这里的示例:

我稍微修改了它们的函数,如下所示:

@function\u buildIcon($icon){
$icon:“%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2218px%22%20height%3D%2218px%22%3E#{$icon}%3C%2Fsvg%3E';
@返回$icon;
}
@函数_buildPath($path,$parameters){
$icon:“%3Cpath%20fill%3D%22{map get($parameters,color)}%22%20fill opacity%3D%22{map get($parameters,color opacity)}%22%20stroke%3D%22{map get($parameters,stroke color)}%22%20stroke width%3D%22{map get($parameters,stroke width)}%22%20style 3D%22{map get($parameters,css)%22%20d%22%22}%2d;
@返回$icon;
}
@功能图标(
$icon名称,
$color,
$color不透明度:1,
$stroke颜色:透明,
$笔划宽度:0,
$css:'//任意css
){
$参数:(
'color':$color,
“颜色不透明度”:$color opacity,
“笔划颜色”:$stroke color,
“笔划宽度”:$stroke width,
“css”:$css
);
$图标:(
选中复选框:_buildPath('M16 0H2a2 2 0 0 0 0-2 2v14a2 2 0 0 0 0 2 2h14a2 2 0 0 0 2 0 0 0-2-2zM7 14L2 9l1.41-1.41L7 11.17l7.59-7.59L16 5l-9 9z',$parameters),
未选中复选框:_buildPath('M16 2v14H2V2h14zm0-2H2C.9 0.9 0 2v14c0 1.1.9 2 2h14c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2z',$parameters)
);
$icon:_buildIcon(map get($icons,$icon name));
@返回url(“数据:image/svg+xml;charset=utf8,#{$icon}”);
}
然后,为了在我的SCSS主题文件中使用它,我执行了以下操作:

$ag-icons-path: '~ag-grid/src/styles/icons/';
$ag-mat-icons-path: '~ag-grid/src/styles/material-icons/';

// Change the primary / accent colors
$primary-color: red;
$accent-color: green;

@import '~ag-grid/src/styles/ag-grid.scss';
@import '~ag-grid/src/styles/ag-theme-material.scss';
.ag主题材质.ag图标复选框选中:空{
$color:mat color($accent);
背景图像:图标(选中复选框“rgb(‘+红色($color)+’、‘+绿色($color)+’、‘+蓝色($color)+’);
}
.ag主题材质.ag图标复选框未选中{
$color:mat color($前台,图标);
背景图像:图标(复选框未选中,'rgb('+红色($color)+'、'+绿色($color)+'、'+蓝色($color)+')、不透明度($color));
}

他们在github中有几个关于图标颜色的问题,解决方案是在这里和这里使用特殊的网页加载器