問題タブ [angular2-resolve]
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 - Observable キャッチ 404 を使用した Resolve を介した HTTP データ サービスを使用する Angular2 ルーター
私の解決ガードでは、Http Observable を取得して、特定の からユーザーの JSON を返していますid
。
id
エラーをキャッチし、存在しない場合はユーザーの概要に再ルーティングしたいと考えています。それをPromiseで解決するコードを見たことがありますが、Observableでは解決しません。Observable を使用した解決策を見たいです!
現在"EXCEPTION: Uncaught (in promise): Response with status: 404 Not Found for URL: http://127.0.0.1:3000/users/191"
、ユーザー191が存在しないため、取得しています。
これが私のコードです:
解決:
ユーザーサービス getUser(id):
user.routing.ts:
UserDetailComponent:
angular - OpaqueToken を使用した Angular2 Routing-Resolve インターフェイスの使用
ルート/コンポーネントがインスタンス化される前にデータをフェッチしたい。したがって、Angular2-Routing-Module の "Resolver" インターフェイスを使用したいと考えています。
私のコードを見てください。プロバイダー名として文字列を使用していますが、プロバイダーに OpaqueToken を使用するとエラーがスローされます。
「NOT WORKING」コメントに注意してください。
1 My (Child-)Routes (抜粋)。
2 私のモジュールのコード (抜粋):
3 私のカスタム Resolver-Class (抜粋):
文字列 ("myResolver") を作成された OpaqueToken ("MyToken" - もちろん引用符なし) に置き換えることはできません。理由がわからない。複数のプロバイダーに複数の OpaqueToken を使用していますが、リゾルバーはそれを使用できません。
コンソールのエラー メッセージは次のように表示されますが、これ以上の情報はありません。
エラー: トークンを定義する必要があります!
誰でもアイデアはありますか?
angular - Angular: パラメータと子ルートを区別する
子ルートがパス セグメントの場合ではなく、パラメーターの場合はリゾルバーが必要な状況があります。以下は私のコードです。
path にヒットすると、 param の値と見なされ、無効であるためagreement/create
、エラーがスローされます。create
id
これで私を助けてください。
angular - Angular: リゾルバーは、サービスが戻った後でもコンポーネントの読み込みを遅らせます
ページをロードする前にロードする必要があるデータがいくつかあり、これを実現するためにルート リゾルバーを使用しています。以下は私のコードです。
サービス:
リゾルバ:
ルーティング モジュール:
ルーティング先のコンポーネント:
インターセプター:
HttpInterceptor
バックエンド サービスが呼び出されたときに表示され、サービスが戻ると消えるスピナー ( を使用) を使用します。バックエンド サービスが戻った後でもコンポーネントの読み込みに時間がかかるため、ユーザーは、スピナーが消えてからターゲット ページにルーティングされるまで、しばらくの間 (約 10 秒) 同じページにとどまります。
この遅延の原因と、どこが間違っているのかわかりません。これで私を助けてください。