1

必要なすべてを実行する次の HTML + Angular アプリ シェルがあります。

  1. ページの読み込み時に URL ハッシュが空の場合、に初期化され#/ます。
  2. URL ハッシュが変更されるたびに、view変数が更新されます。

これは完全に機能します:

<!DOCTYPE html>
<html ng-app>
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.js"></script>
    <script>
      function Router($scope) {
        if (location.hash === "") location.hash = "#/";
        $scope.view = createView(location);
        window.addEventListener("hashchange", function (event) {
          $scope.view = createView(event.newURL);
          $scope.$apply();
        });
      }
      function createView(url) {
        var parser = document.createElement("a");
        parser.href = url.toString();
        var hash = parser.hash;
        return (hash.replace("#/", "/views/") + "/index.html").replace("//", "/");
      }
    </script>
  </head>
  <body ng-controller="Router">
    Navigation:
    <a href="#/one/">one</a>
    <a href="#/two/">two</a>
    Partial: {{view}}
    <!--<div ng-include="view"></div>-->
  </body>
</html>

次に、唯一の問題は、コメントを外すとすぐにdiv[ng-include]、すべてが機能しなくなることです。具体的には、hashchangeイベントの発生が停止します。私は何か間違ったことをしていますか、それともこれはバグですか? 回避策はありますか?

4

0 に答える 0