提供されたURLのパラメータに基づいてページのタイトルタグを動的に変更しようとしています。私はこれを、Aureliaルーターの"router:navigation:success"
(または "complete")イベントに登録することで行います。クラリティが必要です:ルータイベントに登録するAurelia(Typescript)
これは、ページのライフサイクルが最初から最後まで完了するとうまくいくが、URLが同じページ(this.router.navigateToRoute
を使用している)で変更されたとき、それは前にあったため、購読したイベントは発生せず、タイトルタグは変更されません。例えば
:
- 私は
/needs/volunteer
に移動します。タイトルが読み取るAll Volunteering Opportunities
- このページでは、ドロップダウンのセットの選択が行われ、
this.router.navigateToRoute
を使用すると、URLは/needs/volunteer/city-abc
に変更されます。購読したイベントが発生しなかったので、タイトルタグはまだAll Volunteering Opportunities
となります。 /needs/volunteer/city-abc
を指すURLでURLバーに入力すると、タイトルタグはVolunteering Opportunities in City ABC
となります。これは私が起こると予想されるものです。
this.router.navigateToRoute
を指すイベントを購読する方法はありますか?
私たちが現時点で持っているように上記の機能を持つ理由は、URLパラメータでページを読み込むと、関連するドロップダウンが自動的に選択された値に設定されるからです。これにより、人々はURLを共有し、したがってページのコンテンツを共有することもできます。
ご協力いただきありがとうございます。
編集:
私はthis.router.navigateToRoute
ためtrigger: false/true
ためのオプションが存在することに気づきました。私は現在falseに設定されており、ルータは上記のように機能を表示します。
trigger: true
に設定すると、私は望みの効果が得られますが、その時点で完全なページの再読み込みが行われていることがわかります。
私は明らかにこれが起こりたくないので、まだthis.router.navigateToRoute
に関連するイベントを購読する方法を見ています。