問題タブ [angular-route-guards]

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

angular - Angular 9の同じルートパスの異なるコンポーネント

同じ構造を共有する一連の URL の正しいパスを解決しようとしています。私にはパスが/:id/:areaIdあり/:id/:cityId、これは SEO の理由から設計によって行われます。実装するときは:areaId、(API 呼び出しを行うことによって) 存在するかどうかを知る必要があり、存在しない場合は、そこ:cityIdに移動するために存在するかどうかを確認しようとします。

私が最初に考えたのはcanActivate、サービスを注入する必要があり、私には自然に思えたので、自分のルートでした。ガードを実装してareaコンポーネントに適用しましたが、ここで問題が発生したのcanActivatefalse、ナビゲーションが停止したためです。私は urlMatchers の使用について読んできましたが、セグメントに必要なすべての情報があるとは思いませんし、同じルートを持つ Angular 2 の異なるコンポーネントのようなものを使用してサービスを注入することは私には間違っているように思われ、直接ナビゲートしようとすると失敗しますホームを介してナビゲートするのではなく、URL に移動します。直接ナビゲートする場合、インジェクターは定義されていません。

私の質問は、ガードまたは同様のものを使用して、ガードの結果が false の場合に「次の一致する URL に移動する」ことはできますか?

参考までに、私のガードは次のようになります。

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

angular - CanLoad ガードは Electron アプリケーション内で使用できますか?

ユーザーがアクセスできるアプリケーションの部分を決定する BE からの許可 DTO があります。NgRx セレクターを使用して、CanLoad ガード内で使用したいのですが、動作させることができません。

routes.ts

警備員:

console.log何らかの理由で、このガードは起動しません (とで試しましたdebugger)。に変更しcanActiveて「親」ルートファイルで実行すると、どちらも起動しません。起動するのは、変更しcanActiveて「子」routes.fileに移動したときだけです

Acquisition.routes.ts

編集: これは、モジュールがロードされると「CanLoad」ガードが再度起動されないという事実が原因のようです。Electron がすべてを一度にロードする可能性があるため、このガードを呼び出すことはできませんか?