gpt4 book ai didi

angular - 使用 Angular Router 时防止通过 href ="#"重定向

转载 作者:行者123 更新时间:2023-12-05 05:09:06 26 4
gpt4 key购买 nike

我一直在从事 Angular 项目,其中包括不同的库,最重要的是 ngx-datatable。

路由工作没有任何问题,除了 href="#"的 anchor 标记,用户被重定向到/即使不需要。

我发现的所有解决方案都建议删除 # 或整个属性本身,但我不能这样做,因为它需要破解我将使用的所有库。

Example is from ngx-datatable where the link is supposed to Expand/Collapse a row. Instead, it redirects user to homepage.

如果请求 URL 是#,我有什么方法可以使用 Router hook 或其他东西来停止导航吗?

最佳答案

要达到预期结果,请使用 javascript:void(0) 作为 href 属性而不是 #(如果您能够单独更改)

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

选项 2: 更新所有 hrefs 的通用解决方案,覆盖下面答案中提到的 href 属性 Angular 2, handle anchor links with href='#'

@Directive({
selector : '[href]'
})
export class MyLinkDirective {
@Input() href: string;

@HostListener('click', ['$event'])
noop(event: MouseEvent) {
if(this.href.length === 0 || this.href === '#') {
event.preventDefault();
}
}
}

关于angular - 使用 Angular Router 时防止通过 href ="#"重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57790495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com