私の 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() の結果を元のコンポーネントからダイアログが開いたときに起動されるコンポーネントに渡すにはどうすればよいですか?