【发布时间】:2018-10-29 03:58:59
【问题描述】:
Angular (v5.2.10) Snackbar
--|简介 |--
我有一个 Angular 组件(我们称之为“父级”)初始化一个名为 snackBar 的 Angular 材质 Snackbar。传入的是 SnackbarMessage ,这是另一个带有包含小吃栏标记的模板的组件。在这种情况下使用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();
}
}
“SnackbarMessage”组件:
@Component({
selector: 'app-snackbar-message',
templateUrl: './snackbar-message.html'
})
export class SnackbarMessage { }
“snackbar-message.html”标记:
<p>(Snackbar message)</p>
<button type="button" (click)="dismissSnackbar();">Dismiss</button>
--|问题 |--
在导入的SnackbarMessage 模板(snackbar-message.html)中我需要调用Parent 组件的dismissSnackbar();,我们如何使用这个Angular 应用程序的当前封装来做到这一点?
【问题讨论】:
标签: angular typescript angular-components snackbar