从SnackBar组件撤消操作

时间:2018-04-29 09:25:57

标签: angular angular-material2 snackbar

我需要从snackBar自定义组件创建一些撤消逻辑。我正在面对challnge从自定义snackBar组件调用撤消逻辑函数。

SnackBar服务:

showSnackbar(mes: string){
    let snackRef=this.snackBar.openFromComponent(SnakebarComponent, {
              duration : 2000,
               data: mes
                   });
  }

SnackBar组件:

constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) { }
  message = this.data;

  ngOnInit() {
  }

  onClick(){
     // Undo Button of custom component
  }

组件调用snackBar

this._utility.showSnackbar('Saved Successfull!!');

请帮助我实现同样目标。

1 个答案:

答案 0 :(得分:3)

我想你可能正在寻找这种方法dismissWithAction()。在你的函数中,在Snackbar的引用上调用dismissWithAction(),关闭小吃栏。

来自官方文件:

  

dismissWithAction:标记点击的快餐栏操作 - Angular Material - MatSnackBarRef API

示例:

// ...
export class CustomSnackBar {
  constructor(private snackBarRef: MatSnackBarRef<CustomSnackBar>){ }

  onActionBtnClick() {
    this.snackBarRef.dismissWithAction();
  }
}

打开小吃店的代码:

let snackBarRef = this.snackBar.openFromComponent(CustomSnackBar);
snackBarRef.onAction().subscribe(() => {
  console.log('Action button clicked!');
})