3

html5Mode = trueのアプリケーションがありますが、IE では#/urlにフォールバックする必要はありません。私が必要としているのは、URL を保持し、完全なページをリロードすることです。

方法が見つからない場合は、AngularJS ファイルを編集する必要がありますが、それは望ましくありません。

提案?

ありがとう!

- 編集 -

一時的な解決策として、AngularJS ファイルのいくつかのコードにコメントを付けました。

/*if ($sniffer.history) {*/
    $location = new LocationUrl(
      convertToHtml5Url(initUrl, basePath, hashPrefix),
      pathPrefix, appBaseUrl);
  /*} else {
    $location = new LocationHashbangInHtml5Url(
      convertToHashbangUrl(initUrl, basePath, hashPrefix),
      hashPrefix, appBaseUrl, basePath.substr(pathPrefix.length + 1));
  }*/

現在はハッシュタグの URL にフォールバックしません。ブラウザが履歴 API をサポートしていない場合、Browser.url は location.href を作成します。

4

1 に答える 1

0

これはあなたが望むことだと思います。そうでない場合、おそらく解決策には同じイベントが含まれ$locationChangeStartます。

  var gate = 1;
  $scope.$on("$locationChangeStart", function(event, nextLocation, currentLocation) {
    if ($('html').is('.ie6, .ie7, .ie8')) {
      if (gate === 0) { //prevent endless location change
        gate = 1;
        window.location.href = nextLocation; //reload the page
      }
      else {
        gate = 0;
      }
    }
  });

この OldIE チェックを知らない場合は、この投稿を参照してください。

于 2013-11-27T03:14:54.927 に答える