我试图将MatSnackbar
模块放置在页面顶部。
我尝试使用config
添加customclass
。这是我的代码:
component.ts
let config = new MatSnackBarConfig();
config.duration = 50000;
config.panelClass = ['red-snackbar']
this.snackBar.open("Please fill all the details before proceeding.", null, config);
.css
.red-snackbar{
position: absolute !important;
top: 54px;
}
但是它不起作用。是否可以重新放置MatSnackbar?
答案 0 :(得分:12)
您可以确定docs指定的verticalPosition: MatSnackBarVerticalPosition
ts:
openSnackBar(message: string, action: string) {
this.snackBar.open(message, action, {
duration: 2000,
// here specify the position
verticalPosition: 'top'
});
}
答案 1 :(得分:5)
要定位小吃条,请使用位置值
this.snackBar.open(message.text, action, {
duration: this.timeOut,
verticalPosition: 'bottom', // 'top' | 'bottom'
horizontalPosition: 'end', //'start' | 'center' | 'end' | 'left' | 'right'
panelClass: ['red-snackbar'],
});
并更改颜色,在您的样式中。css定义红色小吃栏:
.red-snackbar{
background-color: rgb(153, 50, 50);
color:lightgoldenrodyellow;
}
https://www.coditty.com/code/angular-material-display-multiple-snackbars-messages-in-sequence
答案 2 :(得分:0)
这应该有效:
.mat-snack-bar-container {
margin-top: 50px !important;
}
答案 3 :(得分:0)
对于想知道如何动态设置快餐栏位置的任何人,下面是一个示例:
showSnackBar(text: string, duration = 2000, actionText = 'Fechar', horizontalPosition = 'center'): MatSnackBarRef<SimpleSnackBar> {
return this.snackBar.open(text, actionText, {
duration: duration,
// Cast the variable to MatSnackBarHorizontalPosition
horizontalPosition: horizontalPosition as MatSnackBarHorizontalPosition
});
}
并从以下位置导入MatSnackBarHorizontalPosition:
import { MatSnackBarHorizontalPosition } from "@angular/material/snack-bar";
答案 4 :(得分:0)
这已被弃用,但在 Angular 中运行良好:12.0.0-rc.3。
::ng-deep .mat-snack-bar-container {
margin-top: 250px !important;
}