我尝试将md-progress-circle
对象的颜色更改为自定义颜色。
<md-progress-circle mode="determinate"></md-progress-circle>
我该怎么办?没有要复制或覆盖的类。
在progress-circle.js
我发现了这一行:
styles: [
...
:host path {
fill: transparent;
stroke: #00897b;
/** Stroke width of 10px defines stroke as 10% of the viewBox */
stroke-width: 10px;
}
...
]
答案 0 :(得分:1)
您可以尝试以这种方式覆盖样式:
export function CustomComponent(annotation: any) {
return function (target: Function) {
var parentTarget = Object.getPrototypeOf(target.prototype).constructor;
var parentAnnotations = Reflect.getMetadata('annotations', parentTarget);
var parentAnnotation = parentAnnotations[0];
Object.keys(parentAnnotation).forEach(key => {
if (parentAnnotation[key] !== undefined && parentAnnotation[key] !== null) {
if(Array.isArray(parentAnnotation[key])) {
annotation[key] = [...parentAnnotation[key], ...annotation[key]];
} else {
annotation[key] = parentAnnotation[key];
}
}
});
var metadata = new ComponentMetadata(annotation);
Reflect.defineMetadata('annotations', [ metadata ], target);
}
}
@CustomComponent({
styles: [`
:host path {
stroke: red;
}
`]
})
export class CustomMdProgressCircle extends MdProgressCircle {
constructor(_changeDetectorRef: ChangeDetectorRef) {
super(_changeDetectorRef);
}
}
我已创建覆盖原始CustomMdProgressCircle
的自定义组件MdProgressCircle
然后你需要像这样使用它:
directives: [CustomMdProgressCircle]
这是一个plunkr示例https://plnkr.co/edit/1sROtfRVOOfnpa5C9HFw?p=preview
希望它可以帮到你!
答案 1 :(得分:0)
在Angular 2(和Material 2)中:因为它是一个SVG元素,你可以像这样重新定义它的CSS样式:
.mat-spinner path {
stroke: #cccccc;
stroke-width: 1px !important;
}