私の会社の内部ツールとして(本当に)巨大なAngular 2アプリケーションを開発しています。アプリケーションは、特定のユーザーだけがアクセスできるさまざまなサブアプリケーションで構成されています。サブコンポーネントのDIエラー
これを実行するには、CanActivateクラスを使用してオブザーバブルを返してみました。アクセスを検証するために私のサービスの1つを照会しましたが、サービスをインポートしようとするとクラスのコンストラクタが無効になります。
私はアプリケーション自体でテストを移動しましたが、同じ方法で失敗しました。したがって、問題はサービスそのものにある可能性があります。非常に奇妙なことは、アプリケーションコンテナが同じサービスを使用していることです。何の問題もありません(サービスは利用可能なアプリケーションのリストも提供しており、アプリケーションメニューを生成しています)。
問題はコンポーネントの読み込み順序(おそらくHttp
-関連)ですが、どこから見てもわかりません。残念ながら、アプリケーションの複雑さを考えると、問題を特定するのは非常に難しく、何をすべきか分かりません。
同様の問題が検索され、同様の状況が検出されましたが、その間にAngular2の開発が進んでおり、これらのソリューションは役に立たなくなっています。
[mcve]と特定のエラーがなければ、ほとんど助けが不可能です。 – jonrsharpe
'CanActivate'クラスの上に' @Injectable() 'を入れましたか? – PierreDuc
@jonrsharpeあなたは絶対に正しいですが、私が言ったように私はこの動作を分離することは不可能です。アプリケーションが複雑すぎる –