問題タブ [angular2-router]
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 - Angular2 Route Access 拒否ロジック
ルートにアクセスチェックを入れて、実際のページではなくアクセス拒否ページを表示しようとしています。以下の例から、ルート クリックでアクセスが拒否されたことを警告できます。実際のページに移動してから、アクセスが拒否されたと表示したいと思います。
http://plnkr.co/edit/w1NCkGs0Tv5TjivYMdvt?p=preview
アクセス チェック付きの URL が で/admin/manageusers
、コンポーネント名がManageUserComponent
であるとしましょう。ユーザーがアクセス権を持っておらず、URL を試行した場合、ルートに移動する/admin/manageusers
必要がありますが、表示されるはずAccess Denied in the page
です。
1.私ができることの1つは、ルートresolve
機能を使用して、ユーザーのアクセスに関連する値を取得しManageUserComponent
、テンプレートを切り替えて切り替えることです。このアプローチは、アクセスロジックを実装したいルートに関連付けられた複数のコンポーネントに同様のコードを持つことになります。
component
アクセスチェックが必要なすべての場所を別のものに拡張しbase class
、上記のロジックを検証し、成功した場合は子コンポーネントを続行できるようにします。別のクラスを適切に拡張する方法をまだ理解していない
主な目標は、アクセスした URL をページ内のエラー メッセージと共に保持することです。そして、コンポーネント関数は実行されるべきではありません。
実装するアプローチとオプションを考えられる場合は、共有してください。
説明が明確でない場合はお知らせください。改善に努めます。
angular - まったくナビゲートせずに、activeRoute のオプション パラメータ「id」を設定します
検索の商品を表示する検索フィルター ページがあり、ユーザーが検索の商品をクリックするとモーダルに商品の詳細が表示されます。
ユーザーが製品をクリックしたときに、activeRoute の既存の id オプション パラメータをプログラムで設定したいと考えています。これがオプションである理由です。最初の読み込み時には、ユーザーがクリックするまでパラメーターはありません。その後、ブラウザーの URL からコピーして貼り付けることで、特定の製品へのリンクをクリックして共有できます。
これは、オプションのパラメーターをプログラムで設定する私の試みです:
ルート:
activateRoute id のオプション パラメータを設定します。
理想的には、リソースの無駄である物理的なナビゲーションを停止するための最終的なラインを削除したい
編集:これはうまくいくようです:
ただし、URLは変更されません。ページが再度読み込まれないためだと思います
angular - コンポーネントのAngular2ルートのcanActivateメソッドによって返される値を取得しますか?
Component アクセスを直接制限するために、Angular2 で Auth Manager を作成しました。私はまだAngularに慣れていないため、概念を学習しています。
ユーザー名が正しくない場合、ユーザーを制限できました。しかし、コンポーネントの canActivate メソッドによって返された値を使用して、フロント エンドにメッセージを表示することができません。
私のAuthManagerクラス
あなたはログで許可されていませんが、コンポーネントで値を使用する方法を確認できます。
私の app.router.ts
angular - angular2ルーターでの奇妙な「状態」クエリパラメーターの動作
Angular 2 Router のこの貴重な動作に関するドキュメントは見つかりません。「状態」クエリ パラメータを使用してアプリをロードすると、ルーターは自動的に指定された状態に移動します。
私の問題の解決策を探しているときに偶然これを見つけましたが、他のクエリパラメーターを解析する必要があり、ここでそれらを失っています。
例:http://my.app/?state=#/screen1&anotherParam=something
アプリケーションを に自動的に「リダイレクト」http://my.app/#/screen1
すると、 が失われanotherParam
ます。
これは文書化されていない機能ですか、それともバグですか? または、この動作について見逃したページはありますか?
angular - ルート変更/履歴のないAngular 2ルーター
Guards、Resolver、navigateTo の使用など、Angular 2 Router の利点が気に入っています。
しかし、私のアプリでは、ルートをまったく変更したくありません。したがって、ブラウザの履歴に変更がなければ、常に「/」のままにする必要があります。それは可能ですか?