我使用以下指令:
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模式下不断开链接的类型指令?