【发布时间】:2018-05-10 15:03:27
【问题描述】:
在 Angular 2、Angular 4 和 Angular 5 中(更多可能会出现相同的问题)。
当向 mat-card 指令添加自定义指令时不起作用并且会破坏卡片的样式。
有没有办法解决这个问题?
【问题讨论】:
-
没有 Angular 3 \o/
在 Angular 2、Angular 4 和 Angular 5 中(更多可能会出现相同的问题)。
当向 mat-card 指令添加自定义指令时不起作用并且会破坏卡片的样式。
有没有办法解决这个问题?
【问题讨论】:
我找到了解决该问题的方法。
protected _state = States.ok;
@Input('state')
public set state(value: string) {
console.log('CARD STATE: ', value);
switch (value) {
case States.ok:
case States.warn:
case States.danger:
// this.elementClass = 'app-dashboard-card-' + value;
this.setClass(value);
break;
default:
throw new Error('DashboardItemComponent: state not recognised');
}
this._state = value;
}
constructor(private renderer: Renderer2, private hostElement: ElementRef) {
renderer.addClass(hostElement.nativeElement, 'custom-theme');
}
setClass(state: string) {
this.renderer.removeClass(this.hostElement.nativeElement, OK_CLASS);
this.renderer.removeClass(this.hostElement.nativeElement, WARN_CLASS);
this.renderer.removeClass(this.hostElement.nativeElement, DANGER_CLASS);
this.renderer.addClass(this.hostElement.nativeElement, 'app-dashboard-card-' + state);
}
【讨论】: