問題タブ [router-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.
angular - 名前付きルーターアウトレットと遅延ロードされたモジュール
名前付きルーターアウトレットと遅延読み込みモジュールに問題があります。最初に名前のないルーターアウトレットが2つあり、2つ目はmainappという名前です。
app.component.html
app.main.component.html
app.routes.ts
client.module.ts
- LoginComponent はルーター アウトレットにロードされます
- ログイン後、AppMainComponent がルーターのアウトレットにロードされます
- ここで、ClientComponent を名前付きルーター アウトレットmainappにロードしてみます
エラーが発生します
これにルートを変更すると、動作します:
angular - angular 2でコンポーネントのコンテンツをプログラムで設定する
ヘッダーがあり、いくつかのコンテンツを表示する単純なウィンドウ コンポーネントを作成しました。私のアプリは一度に 1 つのウィンドウしか表示しないので、アプリのルートに配置し、必要な場合にのみ内容を変更します。
アプリのさまざまな場所からウィンドウのコンテンツを設定できるようにする必要があるため、コンポーネントがバインドされるサービスを作成しました。このようにして、必要な場所からサービスのメソッドを呼び出し、ウィンドウ コンポーネントのプロパティを変更できます。
ただし、このサービスの使用方法がわからないのは、ウィンドウのコンテンツとして表示されるコンポーネントのインスタンスを指定することです。たとえば、プログラムng-content
でウィンドウコンポーネントを設定できますか?
私の現在の回避策は、ウィンドウコンポーネントで指定されたすべての可能なコンテンツを持ち、次の*ngIf
ように正しいものを選択することです:
十分に機能しますが、リストが長くなり、維持するのが難しくなっています。また、自分のウィンドウ コンポーネントを、実際には関係のない他のすべてのコンポーネントと結合させるのも好きではありません。さらに、それぞれの異なるコンテンツには独自の入力パラメーターがあり、ウィンドウサービスとコンポーネントもそれらを追跡する必要があります...
私の質問は次のとおりです。この種の問題を解決する、私が知らないAngularの機能はありますか、それとも別の方法でアプローチする必要がありますか?
頭に浮かぶのはng-content
、ウィンドウコンポーネントにタグを配置し、サービスにそのタグを必要なものに置き換えることです。またはrouter-outlet
、ウィンドウ コンポーネント内に配置する必要がありますか? コンテンツの変更はナビゲーションとしてカウントされるべきではないため、そのアプローチも好きではありません。私はすでに、このコンポーネントとは関係のないアウトレットを持っています。