5

したがって、私のサイトの 100% が「AngularJS を利用している」わけではありません。その一部は、ランディング ページやコンテンツ指向のもののような単純な静的 HTML であり、明らかな理由から単純な HTML です。

通常どおりナビゲートするためのリンクを取得できるように見える唯一の方法は、次のようなものです。

  $routeProvider
    .when('/plans', {templateUrl: '<%= asset_path('ng/views/start.html') %>'})
    # Catch all
    .otherwise({ redirectTo: (p,loc) -> window.location = loc })

私ができるようにキャッチオールをもっとシンプルにする必要があり.otherwise(false)、普通にナビゲートするだけのように感じます。同じことが `.when('/something'/, false) にも当てはまりますが、ドキュメントにはこれが可能であることを示唆するものは何もありません。

これを行うためのより良い方法を知っている人はいますか?

編集1:

私が見つけた1つの解決策はtarget='_self'、リンクで使用することです。

もう1つは、ドキュメントで概説されているように、アプリケーションの「ベースURL」を設定することです。次に、そのベースの外にあるすべてのリンクは、通常どおりに移動する必要があります。ただし、それは概説されているようには機能しないようであり、例はドキュメントが示唆しているものとも一致しません。

4

1 に答える 1

3

外部ファイルへのリンクを作成するだけです

hashbang URL(例:#/ plans)を使用している場合は、すべて設定されている必要があります。html5history api($ locationProvider.html5(true))を使用している場合は、アプリの名前空間を設定する必要があります(base [href]を適切に設定)その名前空間の外にコンテンツを配置します。

関連するコード:

https://github.com/angular/angular.js/blob/4df45b20d460239a0f5001fb0dd59f95e2d0e80d/src/ng/location.js#L560

別の解決策はtarget="_self"、そのa要素で使用することです。繰り返しますが、これはhtml5(history pushState)が使用されている場合にのみ問題になるはずです。

于 2013-01-22T23:43:22.453 に答える