問題タブ [ng-component-outlet]
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.
javascript - Angular 2、動的コンポーネントのサブコンポーネントはレンダリングされません
私はこの方法を使用しています
あるコンポーネントを別のコンポーネントに挿入します。私の場合はフォームをサイドバーに挿入します。ただし、注入されたコンポーネント (フォーム) からは、アプリケーションのパイプと共有コンポーネントを使用できません。shared.module に存在するコンポーネントまたはパイプは、注入されたコンポーネント内で認識されません。ngComponentOutlet を介して注入されたコンポーネントで共有コンポーネントを利用できるようにするにはどうすればよいですか?
私はそれをしましたが、コンポーネントファクトリangular-comp-factoryを使用して実行しました。しかし、実際には別の質問があります。私のコンポーネントはレンダリングされていますが、そのサブコンポーネントはありません。コンポーネント ファクトリを使用してサブコンポーネントをレンダリングするにはどうすればよいですか?
javascript - Angular Higher Order Components (HOC)でhtml要素を子として渡す方法は?
Angular Higher Order Component で HTML 要素を渡したいです。現在、子要素を @Input デコレータとして渡しています。私のHOC、メインコンテナはこんな感じです。
他のコンポーネントでは、このように HOC を使用しています
私の現在のコード:
.ts ファイルで、このように子コンポーネントを渡しています
今私がやりたいのは、React形式でこのようなものです
angular - Angular 11+ MatDialog: 内部コンポーネントの (ngComponentOutlet) html がトリガーされない
実際、MatDialog 内の ngComponentOutlet 埋め込みコンポーネントでさらに問題が発生しています。しかし、ここから始めましょう。
私が構築しているもの
MatDialog 内に任意のコンポーネントを表示したい。私は方法を見つけましたが、Angular 9 (私が書いた例を見つけたバージョン) で動作しますが、Angular 11 (私のプロジェクトが基づいているバージョン) や Angular 13 (@latest )。
観察
- 内部 HTML に a が含まれて
<button (click)="close()">Close</button>
いてボタンをクリックすると、内部コンポーネントのclose()
メソッドがトリガーされない - の代わりにイベント
close()
にバインドすると、メソッドがトリガーされます。おそらく他のイベントでも機能しますが、(mousedown)
(click)
(click)
- ボタンをクリックすると、代わりに内部コンポーネントがリロードされます (例のコンソール ログを参照)
- ダイアログのどこかをクリックすると、内部コンポーネントがリロードされます (例のコンソール ログを参照)。Angular 9 では発生しません
Angular 9 にはこの問題はありません。以下の両方の例でまったく同じアプリ コードを使用しています (両方のプロジェクトは で作成されng new
、異なるng
バージョンを使用しています)。
再現例
( stackblitz は病気です。500 秒をくしゃみした場合は、数回再試行してください。おそらく covid... )
- Angular 9 の例では、MatDialog は期待どおりに機能します
- Angular 11 の例では、MatDialog が期待どおりに機能しません
- Angular 13 (@latest) を試しましたが、問題は解決しません
質問
- なぜこうなった?
- どうすればこれを回避できますか?
RAW ファイル FFR
app.module.ts
app.component.ts
my-dialog.service.ts