問題タブ [angular-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 - angular ルーターのカスタム バック アニメーション
私の問題は、routerTransition を使用しているページがいくつかあることです。これは、(query(...)
メソッドを使用して) いくつかの場所で見つけることができるためです。問題は、コンポーネントがブラウザの戻るボタンを押して出入りするときに、別のアニメーションが必要なことです。もう少し詳しく言うと:
- 通常のナビゲーションでは、私のコンポーネントは右から左に入る必要があります
- 後方ナビゲーションでは、コンポーネントは左から右に入る必要があります
離れる場合はその逆です。
ルーターイベントで、それが前方または後方のナビゲーションであるかどうかを何らかの方法で検出できれば、これを簡単に行うことができますが、ルートにさらにデータを追加しない限り、これを検出する方法を見つけることができませんでした.
編集:
@Vegaが言及したようなことをしようとしましたが、それについてのスニペットを貼り付けました。
テンプレート:
コード:
ここでのアイデアは、トランジション トリガーをforward
前方に移動するbackward
ときと後方に移動するときに設定するというものでした。ただし、(少なくともこれが原因だと思います)後方設定は基本的にng-locationサービスから「来る」ため、ルーターがナビゲートを開始する前に状態が設定され、トリガーがあったためアニメーションはありませんルーターアウトレットによってコンポーネントを取り付けたり取り外したりする前に発生します。
ご覧のとおり、ngrx を使用していますが、それは重要ではないと思います。2 つのタイプは、基本的に 2 つの Observable だけです。そのうちの 1 つは、@Vega が言ったように、戻るボタンを押して起動した場合、もう 1 つはカスタム ルーターで起動し (今のところ)、navigateByUrl メソッドをオーバーライドし、その中で Forward アクションをディスパッチして、スーパーを呼び出します。
私が言及しなかったのは、アニメーションはすべて同じであるため、ロードするコンポーネントにアニメーションを配置したくないということです。そして、「デフォルト」のアニメーションのようにすれば、いくつかのコンポーネントを付け忘れることを恐れる必要はありません。
javascript - ガードで使用できないルート パラメータ
id
下のガードで使用できないのはなぜですか?
コンポーネント内に実装すると、同じコードが完全に機能します。
angular - Angular 4 での ID によるルーティング
Angular 4 でのルーティングに助けが必要です。このように URL を表示したいと思います。最初のユーザーの詳細を表示をクリックした場合、Localhost:4200/user/1。これを行う方法について少し混乱しています。以下のコードで最善を尽くしましたが、まだ機能しません。
app-routing.module.ts