問題タブ [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.
angular - Angular 2: @CanActivate に依存関係を挿入しますか?
Angular 2 では@CanActivate
、コンポーネントをアクティブにするかどうかを決定できるコンポーネントの注釈を指定できます。インターフェイスではない理由は、コンポーネントがインスタンス化される前にコールバックが呼び出されるためです。問題は、そのコールバックに依存関係を注入する方法がわからないことです。また、特定のコンポーネントへのルーティングが許可されているかどうかを判断するために、ログインしているかどうか (および誰としてログインしているか) を通知するサービスが必要です。
@CanActivate コールバックに依存関係を挿入するにはどうすればよいですか? 私はES5を使用していますが、これは機能しません:
編集: または、routerOnActivate
コンポーネントでライフサイクル イベントを使用this.router.navigate
し、そこにいるはずのないユーザーを遠ざけるために使用することもできます。欠点は、ブラウザーの履歴が壊れることです。特定の URL に到達するたびに非同期でリダイレクトすると、ブラウザーの [戻る] ボタンをあまり便利に使用できなくなります。このような状況の代わりにrouter.navigate
使用する方法はありますか?history.replaceState
history.pushState
angular - Angular 2 URL パスが機能していません
ナビゲーションに @RouteConfig を使用していますが、ルート構成は次のようになります
次のようなルート リンクを使用すると、CarouselComponent が読み込まれます。
URL はhttp://localhost:60708/calendarにルーティングされます
しかし、URL http://localhost:60708/calendar をアドレスバーに入力して直接アクセスしたい場合や、ルートリンクをクリックしてページにアクセスした後に F5 (ページの更新) をクリックすると、ページが表示されません。これ以上表示します。
なぜこれが起こるのですか?URL パスを使用してコンポーネントをロードするにはどうすればよいですか?
angular - angular2 のグローバル データ
私はAngular 2に取り組んでいます。これには、他のコンポーネントのルーターアウトレットをロードするアプリコンポーネントがあり、ログインコンポーネントへのリンクもあります。しかし、ログインリンクを非表示および表示できるように、アプリコンポーネントとログインコンポーネントでアクセスできるグローバル変数を保持する方法が必要です。
これが私のアプリコンポーネントです:
ここに私のログインコンポーネントがあります
ログイン後、アプリコンポーネントでアクセスしてログインリンクを非表示および表示できる変数を設定する必要があり、必要に応じて他のコンポーネントでも設定する必要があります。
angular - Angular 2ルーターは、コンポーネントを開く前にサーバー要求を解決します
BookDetailComponent
url にマップされたコンポーネントがあり/books/:id
ます。Book
angular 2ルーターで、指定id
されたがサーバーから取得された後にのみこのコンポーネントが開かれるようにする方法はありますか?
Angular 2 ルーターでui-router resolve のような同様の機能を探しています。
typescript - Angular 2 ルーター - ログアウトし、ユーザーがログインしたページに移動しようとすると、リダイレクトするには app.ts が必要です
Angular 2 ルーター - ログアウトし、ユーザーがログインしたページに移動しようとすると、リダイレクトするには app.ts が必要です。
angular 2でtypescriptを使用しています。
何らかの理由で、リダイレクトが一部のページで機能します。しかし、コンストラクターにコードがあると、それがヒットします。ログインしていない場合、ユーザーをすぐにホームページにリダイレクトしたい.
ログインしているかどうかを確認し、app.ts ファイルにログインしていない場合は、次のコードを実行します。
これは基本的なページでは機能しますが、たとえば検索ページにアクセスしようとすると、コンポーネント コンストラクターにアクセスするためにコンソール エラーが発生します。
これは、app.ts ファイルのルート構成です。