我在我使用AngularJS的两个项目中注意到了这一点,所以我认为这是AngularJS的一个问题。
假设我在菜单上有一个“注册”按钮,并将我带到/ account / register页面。但是,如果我在/ account / register页面上,单击该按钮将不会刷新页面。就像按钮被禁用一样。当我想要点击的链接与我当前的页面具有相同的URL时,总会发生这种情况。网址很简单<a href="something1/something2">Link</a>
。如何删除此行为?
答案 0 :(得分:6)
角度有同样的问题,在链接中添加target="_parent"
属性使其正常工作。
答案 1 :(得分:1)
您可以检查当前的url / state / hash是否为“/ account / register”...如果是,则使用$ route服务的reload方法。
答案 2 :(得分:1)
对于谁不理解,我已经录制了我的屏幕以显示此问题。 基本上,Angular有些不对劲。
我通过将target="_parent"
或target="_self"
属性添加到锚标记来修复它,如上所述。
答案 3 :(得分:0)
我没有找到任何合理的方法来检查视图中的路径,但这可能有效:
视图:
<a link-href="path/to/same/location">same location</a>
指令:
app.directive('linkHref', ['$location', '$route', function ($location, $route) {
return {
restrict: 'A',
link: function ($scope, $element, $attrs) {
$element.bind('click', function () {
if ($location.$$url == $attrs.activeLink) {
$route.reload();
} else {
$location.path($attrs.activeLink);
});
}
};
}]);
答案 4 :(得分:0)
我遇到了同样的问题,发现如果我删除了工厂中列出的$ location(不管是否使用)问题就会消失。
答案 5 :(得分:0)
<a target="_self" href="/xxxxxxx"></a>
将解决此问题