【问题标题】:Is it possible to add style/attibute directive to mat-card in Angular 2/4/5 Material是否可以在 Angular 2/4/5 Material 中向 mat-card 添加样式/属性指令
【发布时间】:2018-05-10 15:03:27
【问题描述】:

在 Angular 2、Angular 4 和 Angular 5 中(更多可能会出现相同的问题)。

当向 ma​​t-card 指令添加自定义指令时不起作用并且会破坏卡片的样式。

有没有办法解决这个问题?

【问题讨论】:

  • 没有 Angular 3 \o/

标签: angular angular-material


【解决方案1】:

我找到了解决该问题的方法。

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);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多