【问题标题】:Changing styles of angular material snack-bar after interval间隔后改变角形材料小吃店的风格
【发布时间】:2022-09-28 00:31:11
【问题描述】:

我已经创建了一个自定义角度材料小吃栏,我想在一段时间后(在它关闭之前)更改它的背景颜色。到目前为止,我已经尝试了以下代码,但背景颜色并没有按预期改变。我是 Angular 的新手...任何建议将不胜感激,谢谢。

openSnackBar(isLoading: boolean = true) { 
  this._snackBar.openFromComponent(SnackbarComponent, {
      duration: 5000,
      panelClass: isLoading ? \"greenClass\" : \"blueClass\",
  });

  setTimeout(() => {
    isLoading = false;
  }, 2000);
}

我试图将 setTimeout 函数放在 ngOnInit() 中,但出现错误:Property \'isLoading\' does not exist on type \'SnackbarButtonComponent\'

    标签: angular angular-material snackbar


    【解决方案1】:

    您的代码的问题是属性“isLoading”不是蛇条的属性(直接在 dom 中打开)。

    您可以通过使用 dom queryselector 来实现这一点

    openSnackBar() {
        this._snackBar.openFromComponent(SnackbarComponent, {
          duration: 5000,
          panelClass: ['panelClass'],
        });
        setTimeout(() => {
    
           let mysnackbar: any = document.querySelectorAll('.panelClass')[0]; // querying out our panelClass
           mysnackbar.style.cssText += 'background-color: #9b8b8b !important'; // changing value
       
        }, 2000);
      }
    

    记得在你的全局样式(styles.css 文件)中添加 panelClass。

    .panelClass {
      background-color: pink; // initial background color
    }
    

    我创建了一个 stackblitz 示例here。请点赞 && 选择是否有帮助

    【讨论】:

      猜你喜欢
      • 2018-06-15
      • 2019-07-13
      • 1970-01-01
      • 2022-10-22
      • 2016-09-09
      • 2019-05-07
      • 1970-01-01
      • 2020-10-21
      • 2020-07-05
      相关资源
      最近更新 更多