AngularJS点击任何地方,但在这里使用HTML5Mode

时间:2015-03-09 15:38:24

标签: javascript html angularjs html5 angularjs-directive

我使用以下指令:

app.directive("ngOutside", function($document, $rootScope){
  return {
    restrict: "A",
    link: function(scope, elem, attr, ctrl){

      elem.bind("click", function(e){
        e.stopPropagation();
      });

      $document.bind("click", function(){
        $rootScope.$apply(function(){
          $rootScope.nav = false;
          $rootScope.aside.on = false;
        });
      });

    }
  }
});

现在我在我的HTML中应用它:

<nav ng-outside>
  <ul>
    <li><a href="/home">Home</a></li>
    <li><a href="/dashboard">Dashboard</a></li>
  </ul>
</nav>

最初我使用的是hashbang模式,该指令运行正常。现在我正在使用HTML5模式,e.stopPropagation正在停止Angular在单击其中一个导航链接时计算出路由。相反,浏览器现在正常处理链接并将整页重新加载到该位置。

如果删除以下内容,则会解决问题,但该指令不再适用于此工作:

elem.bind("click", function(e){
  e.stopPropagation();
});

我如何实现“点击此处的任何地方点击”#39;在HTML5模式下不断开链接的类型指令?

0 个答案:

没有答案