問題タブ [angular-router]

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 に答える
25 参照

angularjs - Angular 2: 異なるルート間で非モジュール レベルのサービスを共有する方法

ServiceA独自の状態 (インスタンス変数など) を持つサービスがあり、モジュールには service の複数のインスタンスがありますServiceA

のインスタンスを複数持つ必要があるためServiceA、モジュール レベルのコンポーネントにすることはできません。

ComponentBインスタンスをインスタンス化し、そのServiceA状態を変更する可能性があります:

また、 の HTML テンプレートには、同じインスタンスにアクセスする必要がComponentBある へのルートがあります。ComponentCServiceA

の定義は次のComponentCとおりです。

がモジュール レベルのコンポーネントである場合、とServiceAで共有しても問題はありません。これらは両方とも同じモジュール内にあるためです。しかし、直接注入されてしまったので、もうできません。毎回 1 つだけが作成され、 の後に作成されることに注意してください。ComponentBComponentCServiceAComponentBComponentCComponentCComponentB

ComponentBと の間でデータを共有する方法はありComponentCますか? ありがとう!

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

angular - Angular 4 補助ルートが期待どおりに機能しない

1 つのログイン コンポーネントとホーム モジュールを持つアプリケーションがあります。ホームモジュール内にAuxルートを持たせたいです。

ユーザーがログインするとすぐに、ホーム ルートにリダイレクトされます。

これは私の app-routing.module です

以下は私の home-routing.module.ts です

私の予想では、アプリがホーム ルートにリダイレクトされると、this.router.navigate(['/home']);HomeComponent がレンダリングされ (現在レンダリングされています)、DashboardComponent がレンダリングされます (レンダリングされません)。

「ダッシュボード」への補助ルート内でレンダリングする必要があるコンポーネントへのパスを提供したり、ホームコンポーネントの ngOnInit メソッドからダッシュボードルートにリダイレクトしようとしたりするなど、あらゆる種類のハックを試しましたthis.router.navigate([{ outlets: { aux: 'dashboard' }}]);

しかし、注意はうまくいくようです。私が間違っているのは何ですか?