問題タブ [mddialog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
972 参照

javascript - ダイアログオーバーレイをトリガーする関数を介してAngularコンポーネント間で値を渡す

私の Angular アプリには、ダイアログ オーバーレイを開く機能を備えたコンポーネントがあります。元のコンポーネントからこのダイアログ コンポーネント (EnrollingProcessComponent) にデータを渡す方法を見つけようとしています。これは親子関係ではないので、ここで Input() や [] バインディングを使用することはできません。

また、ここでは説明しませんが、複数のインスタンスが問題を引き起こす可能性があるため、コンポーネント間でデータを取得および共有するためにサービスを使用していません。そのため、サービスを挿入して、ダイアログ コンポーネント (EnrollingProcessComponent) で同じインスタンスを取得することもできません。

とはいえ、元のコンポーネントからダイアログ コンポーネントにこのデータ (単なる電子メール アドレス) を何らかの方法で渡す必要があります。パラメータとして渡すことでこれを行うことができるはずだと思いますが、これまでのところ機能させることができません(つまり、元のコンポーネントの値をコンソールに出力すると、値が取得されます。しかし、ダイアログ(EnrollingProcessComponent)コンポーネントでその値を慰めると、「未定義」になります)。

click() イベントを使用して、ダイアログ コンポーネントを開きます。

トリガーされる関数は次のようになります。

メールアドレスである getPrimaryContactEmail() の結果を元のコンポーネントからダイアログが開いたときに起動されるコンポーネントに渡すにはどうすればよいですか?

0 投票する
1 に答える
122 参照

angular - ヘッダー コンポーネント MdDialog を開きますが、ヘッダーに MdDialg を閉じるように指示するイベントを発行するには、MdDialog が必要です

アプリにドロップダウン メニューのあるヘッダーがあります。「メール」をクリックすると、MdDialog がポップアップします。これは、this.dialog.open(EmailDialogComponent) があるためです。よく働く!ここで、MdDialog の右上にある X をクリックする必要があります。これは、ヘッダー テンプレートがリッスンして実行できるイベントを発行する必要があります。

this.dialog.closeAll()

EmailDialogComponent のテンプレートでイベントをリッスンしようとしましたが、まだ「イベントをリッスン」しません。

@Outup closeDialog = new EventEmitter(); があります。次に、Xに (click)="closeEmailDialog()" を持っています。closeEmailDialogはこれです closeEmailDialog() { this.closeDialog.emit(null); }

しかし、これは機能していません。MdDialog テンプレートでイベントをリッスンしても、起動していないようです - 何か考えはありますか?