在我的 Angular 应用程序中,我有一个带有打开对话框覆盖的功能的组件。我试图弄清楚如何将一些数据从原始组件传递到这个对话框组件(EnrollingProcessComponent)。这不是父子关系,所以我不能在这里使用 Input() 或 [] 绑定。
此外,由于多个实例可能会导致问题,我不会在这里讨论,我们没有使用服务来获取和共享组件之间的数据。所以我也不能注入服务来在对话框组件(EnrollingProcessComponent)中获取相同的实例。
所以,综上所述,我需要以某种方式将这些数据(只是一个电子邮件地址)从原始组件传递到对话组件。我假设我应该能够通过将它作为参数传递来做到这一点,但到目前为止我无法让它工作(即,当我控制台输出原始组件中的值时,我得到了值。但是当在对话框(EnrollingProcessComponent)组件中安慰该值,我得到“未定义”)。
我使用 click() 事件打开对话框组件:
<button *ngIf="canBeEnrolled()" md-menu-item
(click)="onContactClicked()">
<span class="md-menu-text">Initiate Contact</span>
</button>
触发的函数如下所示:
public onContactClicked(primaryContactEmail): void {
primaryContactEmail = this.getPrimaryContactEmail();
console.log(this.getPrimaryContactEmail());
console.log('onContactClicked engaged on: ' + new Date());
// Create dialog
let dialogRef: MdDialogRef<EnrollingProcessComponent>
= this.dialog.open(EnrollingProcessComponent, {disableClose: true});
}
如何将 getPrimaryContactEmail() 的结果(一个电子邮件地址)从原始组件传递到对话框打开时触发的组件?