問題タブ [cyclic-dependency]
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 - アプリがブートストラップまたはロードされたときに、角度ですべての親ルートを動的にロードします
angular 2 を使用して、ベース href を確認し、それをapp.routes.tsファイル内の定義済みの親ルートのセットと照合する必要があるアプリケーションを構築しています。
現在、次の方法で使用されるプロバイダーで、parentRoutes = ['login', 'signup', 'admin', 'user', 'manage'] のハードコーディングされた配列を作成しました。
次のサービスを使用して、このparentRoutes配列を動的にロードする必要があります:
ただし、これは app.module.ts 内の customProvider (上に記述) で行う必要があります。
サービスを呼び出してみましたが、app.module.ts ファイルからはできないようです。さらに、ライフサイクルの問題があります。アプリがロードされるとき、app.module.ts の customProvider チェックは、this.routePath が定義される前に実行されます。
python - Python の循環インポートにより、上位モジュールから関数を呼び出すことができなくなります
以下は私のコードです。
main.py:
moduleA.py:
moduleB.py:
実行すると、次のエラー メッセージが表示されます。
Q1: 私の場合、moduleB は明示的に moduleA をインポートするため、動作することを期待していますが、動作しません。これは、Python がインポートをキャッシュし、2 回行わないためですか? しかし、失敗するのではなく、既にキャッシュされている moduleA.functionA() をメモリから取得できないのはなぜですか? したがって、現在の動作はバグだと思います。
Q2: "globalVariableFromModuleB = moduleA.functionA()" という行を削除し、循環インポート "import moduleA" だけを残せば、問題はありません。そのため、循環依存は Python では禁止されていません。私の例を示しているように、それらが正しく機能しない場合、それらは何のために許可されますか?
Q3: "import moduleA" を "from moduleA import functionA" に変更すると、メイン プログラムが機能せず、別のメッセージ "ImportError: cannot import name functionA" が表示されて失敗します。
また、私の場合のように、アプリケーションを再設計したくない人のための回避策をここに投稿したいと思います。
回避策(実験的に発見されました)。main.py の「import moduleA」の前に「 import moduleB」を追加するには、次のようにします。
しかし、main.py は moduleB の API を直接使用しないため、コードのこのインポートに長いコメントを残す必要がありました。
そのようなケースを解決し、上記の3つの質問に答える方法を提案してください。
angular - Angular2: HTTP インターセプト ファクトリと認証サービスの間の循環依存関係の解決
次の認証サービスがあります。
そして、次のHttp
インターセプターファクトリー:
基本的に、ここでの要件は、バックエンドからステータス 401 の応答を受信した場合、ログアウト手順を開始する必要があるということです。
App モジュールでの設定は次のとおりです。
Http
これにより、インターセプターが必要とする循環依存エラーが発生しますAuthService
が、AuthService
必要Http
です。
を使用forwardRef
して注入しようとしHttp
ましAuthService
たが、何も変わりませんでした。
再構築する方法についての助けは素晴らしいでしょう。
python-3.x - Python パッケージのインポート ステートメントをクリーンアップする方法
そこで、多くのモジュールを含むパッケージをクリーンアップすることにしました。そのために、すべてのモジュールの import ステートメントにコメントを付け、コードを実行するときに必要なものをロードしていました。ただし、これはすぐに悪夢になり、循環インポートを解決しようとしていることに気づきました。これを解決する方法がまったくわかりません。パッケージをクリーンアップする最も簡単な方法は何ですか? このままではどこにも行けないと思います。
c++ - このような循環依存を解決する方法はありますか
私は C コンパイラを書いており、構文解析の段階にあります。構文ツリー ノードの階層があります。コードをリファクタリングしたいのですが、このような依存関係を解決できません。
たとえば、事前に宣言されたすべてのクラスと抽象 Node クラスを含むヘッダーを次に示します。
primary_expr.h:
postfix_expr.h:
問題は、PrimaryExprNode とその継承者が PostfixExprNode の完全な宣言を必要とするため、primary_expr.h を含める必要があることです。一方、StructureOrUnionMemberAccessNode は、Print 関数で IdNode に関する情報が必要です。この問題を解決する方法はありますか?それとも、すべてを 1 つのヘッダーに保持する必要がありますか?