Angular コントローラーとサービスを動的にダウンロードして挿入する Angular のルーティング アーキテクチャの根性を持っています...コントローラー部分は正常に動作し、$route の .resolve プロパティを介して依存サービスをダウンロードしようとしています。
ここで、ページの起動中にスコープ内で宣言されたファクトリがある場合、それは正常に登録され、それを使用するコントローラーは正常に解決されます。
myModule.factory('MyInjectedDep', function() {
return {};
});
....
MyController = function(MyInjectedDep)
しかし、「実行時」にその依存関係を登録しようとすると (より適切な表現が必要なため)、循環依存エラーが発生します。例えば:
$route.routes[routeItem.route] = {
resolve: {
MyInjectedDep: ['$injector', function($injector) {
// In real code I download/eval this via $http but same behavior occurs
myModule.factory('MyInjectedDep', function() {
return {};
});
}]
}
}
したがって、コントローラーが開始されると、次のようになります。
MyController = function(MyInjectedDep)
循環依存エラーが表示されますが、エラー メッセージに依存関係のトレースが表示されませんか?
Error: Circular dependency:
どんなアイデアでも大歓迎