当前位置: 首页 > 知识库问答 >
问题:

角度为2的被动链接-等效

吕越彬
2023-03-14

在Angular 1. x中,我可以执行以下操作来创建一个基本上什么都不做的链接:

<a href="">My Link</a>

但在Angular 2中,相同的标签会导航到应用程序库。角2的等效值是什么?

编辑:这看起来像Angular 2路由器中的一个bug,现在github上有一个关于这一点的公开问题。

我正在寻找一个开箱即用的解决方案,或者确认不会有任何解决方案。

共有3个答案

冯宏恺
2023-03-14

使用angular2有很多方法,但我强烈反对这是一个bug。我不熟悉angular1,但这似乎是一个非常错误的行为,尽管正如您所说的,在某些情况下是有用的,但显然这不应该是任何框架的默认行为。

撇开分歧不谈,您可以编写一个简单的指令来获取所有链接并检查href的内容,如果它的长度为0,则执行预防默认值(),这里有一个小例子。

@Directive({
  selector : '[href]',
  host : {
    '(click)' : 'preventDefault($event)'
  }
})
class MyInhertLink {
  @Input() href;
  preventDefault(event) {
    if(this.href.length == 0) event.preventDefault();
  }
}

通过在PLATFORM\u指令中添加此指令,可以使其在应用程序中工作

bootstrap(App, [provide(PLATFORM_DIRECTIVES, {useValue: MyInhertLink, multi: true})]);

这是一个plnkr示例工作。

梁骞仕
2023-03-14

那是一样的,它没有任何与angular2相关的内容。它是简单的html标签。

基本上,HTML解析器将呈现一个(锚定)标记。

编辑

您可以通过在其上设置javascript:void(0)来禁用该功能,这样它就不会发生任何事情。(但它的黑客行为)。我知道Angular 1提供了这种开箱即用的功能,但现在对我来说似乎不正确。

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

普朗克尔

其他方法可以使用routerLink指令,传递"值,最终将生成空白href=""

<a routerLink="" (click)="passTheSalt()">Click me</a>
暴骏奇
2023-03-14

如果你有角度5或以上,只要改变

<a href="" (click)="passTheSalt()">Click me</a>

进入

<a [routerLink]="" (click)="passTheSalt()">Click me</a>

将鼠标悬停在链接上方时,链接将显示一个手形图标,单击它不会触发任何路由。

注意:如果要保留查询参数,应将queryParamsHandling选项设置为preserve:

<a [routerLink]=""
   queryParamsHandling="preserve"
   (click)="passTheSalt()">Click me</a>
 类似资料:
  • 我遇到了这个githttps://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md,它展示了开发人员如何通过添加“被动监听器”来提高滚动性能。我第一次看到它是在我的chrome向我显示警告时(确切的警告是“由于主线程繁忙,‘触摸启动’输入事件的处理延迟了126毫秒”。考虑将事件处理程序标记为“被动”,以使页面更具响应性。

  • 有没有办法手动将formGroup设置为无效状态? 我尝试了

  • > 到目前为止,我使用角2快速入门创建了一个新项目。 我决定开始使用angular 2 cli,并创建了一个新的angular 2 cli项目。 移动了我的所有文件并重新安装了所有软件包。 现在,当我试图在CLI项目中使用角2材料时,我遵循了这里的指南,但这是我得到的: 会出什么问题?

  • 我用角2,我创建一个甜甜圈图 组件的html 我想要的是将这些值作为主组件的输入进行传递。因此,假设在html上,我将该组件称为: 主HTML 组成部分js代码 因此,我的问题是如何将这些输入传递到组件的html中。

  • 将图像转换为angular 2中的base64,图像从本地上传。当前am使用FileLoadeDevent.Target.Result。问题是,当我通过REST服务向java发送这个base64字符串时,它无法对其进行解码。当我尝试这个base64字符串与免费的在线编码器-解码器,那里我也看不到解码图像。我也试过用帆布。我没有得到适当的结果。有一件事是肯定的base64字符串什么是得到不适当的一个

  • 问题内容: 我希望div使用CSS从右角2滑入。 如果我仅使用[ngClass]来切换类并利用不透明性,则可以正常工作。但是li不想从一开始就渲染该元素,因此我先用ngIf“隐藏”了它,但是之后过渡将无法工作。 问题答案: 更新4.1.0 柱塞 另请参见https://github.com/angular/angular/blob/master/CHANGELOG.md#400-rc1-2017-