我正在尝试向Angular Material Snackbar添加panelClass配置。
我按照官方网站的文档编写了以下代码。
import { Component, OnInit } from '@angular/core';
import { MatSnackBar, MatSnackBarConfig } from "@angular/material";
import { Location } from '@angular/common';
@Component({
selector: 'snack-bar-component-example',
templateUrl: './snack-bar-component-example.html',
styleUrls: ['./snack-bar-component-example.css']
})
export class SnackBarComponentExample implements OnInit {
constructor(public snackBar: MatSnackBar) { }
ngOnInit() {
}
saveButtonClick = () =>{
this.snackBar.open("This is a message!", "ACTION", {
duration: 3000,
panelClass: ["font-family:'Open Sans', sans-serif;"]
});
}
}
我已经将事件绑定到HTML按钮上。当我删除panelClass
配置时,持续时间配置就可以正常工作。我正在导入Google字体(Open Sans)并尝试将字体应用于Snackbar。但是,我收到一个错误:
ERROR DOMException: Failed to execute 'add' on 'DOMTokenList': The token provided ('font-family:'Open Sans', sans-serif;') contains HTML space characters, which are not valid in tokens.
也许我不太明白如何使用panelClass
。即使我试图添加它,
panelClass: ["color:white;"];
仍然显示错误:
ERROR DOMException: Failed to execute 'add' on 'DOMTokenList': The token provided ('color: white;') contains HTML space characters, which are not valid in tokens.
我该如何修复这个错误并使事情正常工作?请帮忙。
附言:我知道extraClasses
配置,但是我不想使用它,因为文档中写道它很快就会被弃用。
附言2:它与持续时间配置一起正常工作。
this.snackBar.open("这是一条信息!", "操作", {duration: 500, panelClass: ['red-snackbar']});
- Raj/deep/
, >>> 和 ::ng-deep。它们的支持最终将被完全删除。 - Narm