假设我有一个锚标记,比如

<a href="#" ng-click="do()">Click</a>

如何防止浏览器在AngularJS中导航到# ?


当前回答

超文本标记语言

这里纯angularjs:在ng-click函数附近,你可以通过分隔分号来编写preventDefault()函数

<a href="#" ng-click="do(); $event.preventDefault(); $event.stopPropagation();">Click me</a>

JS

$scope.do = function() {
    alert("do here anything..");
}

(or)

你可以这样做,这已经有人讨论过了。

HTML

<a href="#" ng-click="do()">Click me</a>

JS

$scope.do = function(event) {
    event.preventDefault();
    event.stopPropagation()
}

其他回答

避免href上的事件最安全的方法是将其定义为

<a href="javascript:void(0)" ....>

我找到的最简单的解决方法是:

<a href="#" ng-click="do(); $event.preventDefault()">Click</a>

或者如果你需要内联,那么你可以这样做:

<a href="#" ng-click="show = !show; $event.preventDefault()">Click to show</a>

你可以在$location的Html5Mode中禁用url重定向来实现这个目标。您可以在页面使用的特定控制器中定义它。 就像这样:

app.config(['$locationProvider',函数($locationProvider) { 美元locationProvider.html5Mode ({ 启用:没错, rewriteLinks:假的, requireBase:假 }); }));

我一直都是这么做的。效果好极了!

<a href ng-click="do()">Click</a>