Javascript 为什么AngularJS会破坏自引用锚链接?
如果你在这样的地方Javascript 为什么AngularJS会破坏自引用锚链接?,javascript,html,angularjs,Javascript,Html,Angularjs,如果你在这样的地方 http://www.domain.com/index.html 。。。你有一个指向同一位置的链接 <a href="/index.html">My Link</a> 。。。然后点击链接什么也不做。通常情况下,你会像往常一样被重定向到页面;刷新页面的简便方法(无需进行完全刷新) 我已经追查到这种奇怪行为的罪魁祸首是安格拉斯 观察以下示例: <body> <a href="">Sample Link</a&g
http://www.domain.com/index.html
。。。你有一个指向同一位置的链接
<a href="/index.html">My Link</a>
。。。然后点击链接什么也不做。通常情况下,你会像往常一样被重定向到页面;刷新页面的简便方法(无需进行完全刷新)
我已经追查到这种奇怪行为的罪魁祸首是安格拉斯
观察以下示例:
<body>
<a href="">Sample Link</a>
<script>
var SampleApp = angular.module("SampleApp", []);
</script>
</body>
var SampleApp=angular.module(“SampleApp”,[]);
通过单击链接,浏览器将尝试转到同一位置(因为href为空)这是正常的
现在让我们激活角度:
<body ng-app="SampleApp">
<a href="">Sample Link</a>
<script>
var SampleApp = angular.module("SampleApp", []);
</script>
</body>
var SampleApp=angular.module(“SampleApp”,[]);
点击链接什么也不做
为什么AngularJS会以这种方式断开链接?有什么明显的原因让我错过了吗?为什么Angular会阻止
href
的经典行为?
发件人:
AngularJS预先绑定了一个指令,它可以防止
省略href属性时链接上的默认操作。这
允许我们使用a标记和
ng click指令。例如,我们可以调用a
标记,如下所示:
<a ng-click='showFAQ()'>Frequently Asked Questions</a>
常见问题
使用a标记而不使用默认导航操作非常方便,如下所示:
一些CSS框架使用a标记来呈现不同类型的
视觉元素,其中导航操作没有多大意义。
例如,Twitter的Bootstrap CSS框架使用a标记
在选项卡和手风琴组件中呈现标题
要保留的关键字是:“handy”角度覆盖
a
标记:
这里要注意的行是:
// if we have no href url, then don't navigate anywhere.
if (!element.attr('href')) {
event.preventDefault();
}
Angular之所以这样做是因为,它仅在Angular和scope完全加载后设置href
,从而防止用户意外进入/{{pageUrl}/
如果你想重新加载页面,你应该看看Angular提供的
$location
服务。应该会给出你想要的完美答案。添加target=“\u self”
就可以了。@RowanFreeman这也是我所做的。工作起来很有魅力。