1. ホーム
  2. angularjs

html5Modeを用いたAngularjsの通常リンク

2023-10-12 05:30:43

質問

私はhtml 5モードでangularjsで作業しています。これは、ページ上のすべての href を制御しているように見えます。しかし、アプリの同じドメイン内にあるものへのリンクを持ちたいが、実際にはアプリ内にない場合はどうしたらよいでしょうか。たとえば、pdfのようなものです。

もし私が <a href="/pdfurl"> と書くと、angularはhtml5modeを使おうとし、どのビューをロードすべきかを決定するためにルートプロバイダを使用するだけです。しかし、実際には、ブラウザが通常の方法でそのページに移動することを望んでいます。

これを行う唯一の方法は、ルートプロバイダでルールを作成し、それがwindow.locationで正しいページにリダイレクトさせることですか?

どのように解決するのですか?

がHTML5モードの場合、Aタグが書き換わらない状況は3つあります。 から angular docs

  • を含むリンクは target 属性を含むリンク。例 <a href="/ext/link?a=b" target="_self">link</a>
  • 別ドメインを指す絶対リンク Example: <a href="http://angularjs.org/">link</a>
  • のときに異なるベースパスを指す '/' で始まるリンク。 base が定義されている場合 Example: <a href="/not-my-base/link">link</a>

ということで、1.の場合は target="_self"