問題タブ [angular2-routing]

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 投票する
5 に答える
6050 参照

angular - Angular 2: @CanActivate に依存関係を挿入しますか?

Angular 2 では@CanActivate、コンポーネントをアクティブにするかどうかを決定できるコンポーネントの注釈を指定できます。インターフェイスではない理由は、コンポーネントがインスタンス化される前にコールバックが呼び出されるためです。問題は、そのコールバックに依存関係を注入する方法がわからないことです。また、特定のコンポーネントへのルーティングが許可されているかどうかを判断するために、ログインしているかどうか (および誰としてログインしているか) を通知するサービスが必要です。

@CanActivate コールバックに依存関係を挿入するにはどうすればよいですか? 私はES5を使用していますが、これは機能しません:

編集: または、routerOnActivateコンポーネントでライフサイクル イベントを使用this.router.navigateし、そこにいるはずのないユーザーを遠ざけるために使用することもできます。欠点は、ブラウザーの履歴が壊れることです。特定の URL に到達するたびに非同期でリダイレクトすると、ブラウザーの [戻る] ボタンをあまり便利に使用できなくなります。このような状況の代わりにrouter.navigate使用する方法はありますか?history.replaceStatehistory.pushState

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

angular - Angular 2 URL パスが機能していません

ナビゲーションに @RouteConfig を使用していますが、ルート構成は次のようになります

次のようなルート リンクを使用すると、CarouselComponent が読み込まれます。

URL はhttp://localhost:60708/calendarにルーティングされます

しかし、URL http://localhost:60708/calendar をアドレスバーに入力して直接アクセスしたい場合や、ルートリンクをクリックしてページにアクセスした後に F5 (ページの更新) をクリックすると、ページが表示されません。これ以上表示します。

なぜこれが起こるのですか?URL パスを使用してコンポーネントをロードするにはどうすればよいですか?

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

angular - Angular2 での LocationStrategy のインスタンス化中のエラー

アプリ コンポーネントをロードするインデックス ページがあるangular-2でアプリを開発しています。app コンポーネントの内容は、ホームまたはログインをロードするためのルーティングです。

ここに私のindex.htmlがあります

ここに私のbootstrap.tsがあります

ここに私のapp.tsがあります

他のコンポーネントをロードしますが、アプリを実行するとエラーが発生します。

ここに画像の説明を入力

ここで欠けているものを修正してください。

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

angular - angular2 のグローバル データ

私はAngular 2に取り組んでいます。これには、他のコンポーネントのルーターアウトレットをロードするアプリコンポーネントがあり、ログインコンポーネントへのリンクもあります。しかし、ログインリンクを非表示および表示できるように、アプリコンポーネントとログインコンポーネントでアクセスできるグローバル変数を保持する方法が必要です。

これが私のアプリコンポーネントです:

ここに私のログインコンポーネントがあります

ログイン後、アプリコンポーネントでアクセスしてログインリンクを非表示および表示できる変数を設定する必要があり、必要に応じて他のコンポーネントでも設定する必要があります。

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

angular - Angular 2ルーターは、コンポーネントを開く前にサーバー要求を解決します

BookDetailComponenturl にマップされたコンポーネントがあり/books/:idます。Bookangular 2ルーターで、指定idされたがサーバーから取得された後にのみこのコンポーネントが開かれるようにする方法はありますか?

Angular 2 ルーターでui-router resolve のような同様の機能を探しています。

0 投票する
3 に答える
2240 参照

typescript - Angular 2 ルーター - ログアウトし、ユーザーがログインしたページに移動しようとすると、リダイレクトするには app.ts が必要です

Angular 2 ルーター - ログアウトし、ユーザーがログインしたページに移動しようとすると、リダイレクトするには app.ts が必要です。

angular 2でtypescriptを使用しています。

何らかの理由で、リダイレクトが一部のページで機能します。しかし、コンストラクターにコードがあると、それがヒットします。ログインしていない場合、ユーザーをすぐにホームページにリダイレクトしたい.

ログインしているかどうかを確認し、app.ts ファイルにログインしていない場合は、次のコードを実行します。

これは基本的なページでは機能しますが、たとえば検索ページにアクセスしようとすると、コンポーネント コンストラクターにアクセスするためにコンソール エラーが発生します。

これは、app.ts ファイルのルート構成です。