小编Cod*_*ene的帖子

Angular(v5 +)-Snackbar“ openFromComponent”,组件通信

角(v5.2.10)小吃吧

-| 简介|-
我有一个Angular组件(我们称之为“父母”),它初始化了一个名为的Angular材质Snackbar snackBarSnackbarMessage传入的是,另一个组件的模板包含快餐栏标记。snackBar.openFromComponent(SnackBarMessage)在这种情况下,使用是必要的,因为我不仅仅需要在小吃栏中使用纯文本(例如标记,单击事件等),snackBar.open(message, action)而这还不够。

-| 代码|-

“父项”组件:

@Component({
  selector: 'app-parent',
  templateUrl: './parent.component.html'
})
export class Parent implements AfterViewInit {

  public constructor(public snackBar: MatSnackBar) { }

  public ngAfterViewInit(): void {
      this.snackBar.openFromComponent(SnackbarMessage);
  }

  public dismissSnackbar(): void {
    this.snackBar.dismiss();
  }
}
Run Code Online (Sandbox Code Playgroud)

“ SnackbarMessage”组件:

@Component({
  selector: 'app-snackbar-message',
  templateUrl: './snackbar-message.html'
})
export class SnackbarMessage { }
Run Code Online (Sandbox Code Playgroud)

“ snackbar-message.html”标记:

<p>(Snackbar message)</p>
<button type="button" (click)="dismissSnackbar();">Dismiss</button>
Run Code Online (Sandbox Code Playgroud)


-| 问题|-
在导入的SnackbarMessage模板(snackbar-message.html)中,我需要调用Parent组件的dismissSnackbar();,我们如何使用此Angular应用程序的当前封装来做到这一点?

typescript snackbar angular-components angular

2
推荐指数
3
解决办法
7686
查看次数