問題タブ [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.

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

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:

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

angular - OpaqueToken を使用した Angular2 Routing-Resolve インターフェイスの使用

ルート/コンポーネントがインスタンス化される前にデータをフェッチしたい。したがって、Angular2-Routing-Module の "Resolver" インターフェイスを使用したいと考えています。

私のコードを見てください。プロバイダー名として文字列を使用していますが、プロバイダーに OpaqueToken を使用するとエラーがスローされます。

「NOT WORKING」コメントに注意してください。

1 My (Child-)Routes (抜粋)。

2 私のモジュールのコード (抜粋):

3 私のカスタム Resolver-Class (抜粋):

文字列 ("myResolver") を作成された OpaqueToken ("MyToken" - もちろん引用符なし) に置き換えることはできません。理由がわからない。複数のプロバイダーに複数の OpaqueToken を使用していますが、リゾルバーはそれを使用できません。

コンソールのエラー メッセージは次のように表示されますが、これ以上の情報はありません。

エラー: トークンを定義する必要があります!

誰でもアイデアはありますか?

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

angular - Angular: パラメータと子ルートを区別する

子ルートがパス セグメントの場合ではなく、パラメーターの場合はリゾルバーが必要な状況があります。以下は私のコードです。

path にヒットすると、 param の値と見なされ、無効であるためagreement/create、エラーがスローされます。createid

これで私を助けてください。

0 投票する
0 に答える
1392 参照

angular - Angular: リゾルバーは、サービスが戻った後でもコンポーネントの読み込みを遅らせます

ページをロードする前にロードする必要があるデータがいくつかあり、これを実現するためにルート リゾルバーを使用しています。以下は私のコードです。

サービス:

リゾルバ:

ルーティング モジュール:

ルーティング先のコンポーネント:

インターセプター:

HttpInterceptorバックエンド サービスが呼び出されたときに表示され、サービスが戻ると消えるスピナー ( を使用) を使用します。バックエンド サービスが戻った後でもコンポーネントの読み込みに時間がかかるため、ユーザーは、スピナーが消えてからターゲット ページにルーティングされるまで、しばらくの間 (約 10 秒) 同じページにとどまります。

この遅延の原因と、どこが間違っているのかわかりません。これで私を助けてください。