前提

やりたかったこと

こんなことがしたかったのです。


<a href="/myapp/entry">Go Entry!</a><!-- ← これはルーティングしたい -->
<a href="/about">About Us</a><!-- ←これは普通のリンクになって欲しい -->

[Go Entry!]をクリックしたときは、ルーティングに従って画面を描画し、[About US]をクリックしたときは、普通にページをロードして欲しかったのです。

しかしhtml5Modeを有効にしリンクを書き換えるようにしてしまうと、[About US]もルーティングしようとしてなんも動きません。 :fearful:

環境

AngularJS 1.3です。

解決策 :smile:

stackoverflowにありました。

ところを、あえてまとめなおします。

方法1

通常リンクのaタグにtarget属性をつける。


<a href="/about" target="_self">About Us</a>

方法2

異なるドメインへのリンクなら書き換えられない。

(今回は使えないですね)

方法3

baseタグを入れて、そのbase内だけのリンクを書き換えさせるようにする。


<base href="/myapp/">

コレだ!