Angular2,禁用锚元素的正确方法是什么?

大卫·派恩(David Pine)

我正在Angular2应用程序上工作,我需要显示-但是disable<a> HTML元素。正确的方法是什么?

更新

请注意*ngFor,这会阻止使用选项,*ngIf而不是<a>完全渲染

<a *ngFor="let link of links"
   href="#" 
   [class.disabled]="isDisabled(link)" 
   (click)="onClick(link)">
   {{ link.name }}
</a>

打字稿组件有一个方法,看起来像这样:

onClick(link: LinkObj) {
    // Do something relevant with the object... 
    return false;
}

我实际上需要防止元素被单击,而不仅仅是与CSS一起出现我以为我首先需要潜在地绑定到该[disabled]属性,但这是不正确的,因为锚元素没有disabled属性。

我查看并考虑过使用,pointer-events: none但这妨碍了我的cursor: not-allowed工作方式-这是要求的一部分。

迈克尔·刘

pointer-events: none在CSS中指定会禁用鼠标输入,但不会禁用键盘输入。例如,用户仍然可以选择链接并通过Enter按键或(在Windows中)≣ Menu“单击”它您可以通过拦截keydown事件来禁用特定的击键操作,但这可能会使依赖辅助技术的用户感到困惑。

禁用链接的最佳方法可能是删除其href属性,使其成为非链接。您可以使用条件href属性绑定来动态地执行此操作

<a *ngFor="let link of links"
   [attr.href]="isDisabled(link) ? null : '#'"
   [class.disabled]="isDisabled(link)"
   (click)="!isDisabled(link) && onClick(link)">
   {{ link.name }}
</a>

或者,按照GünterZöchbauer的回答,您可以创建两个链接,一个是普通链接,另一个是禁用链接,并*ngIf用来显示一个或另一个:

<ng-template ngFor #link [ngForOf]="links">
    <a *ngIf="!isDisabled(link)" href="#" (click)="onClick(link)">{{ link.name }}</a>
    <a *ngIf="isDisabled(link)" class="disabled">{{ link.name }}</a>
</ng-template>

这是一些使链接看起来无效的CSS:

a.disabled {
    color: gray;
    cursor: not-allowed;
    text-decoration: underline;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

缺少在angular2(2种差异方式)文档中访问本机元素的正确方法是什么

来自分类Dev

在Angular2 Dart中设置Router和RouterLink的正确方法是什么

来自分类Dev

使用angular2 http请求和Django CSRF保护的正确方法是什么?

来自分类Dev

在Swift 2中,禁用NSMenuItem的正确方法是什么?

来自分类Dev

Angular2获取元素/组件样式的正确方法

来自分类Dev

处理从 angular2/4 rxjs 中的多个 http observables 返回的数据串联的正确方法是什么?

来自分类Dev

Angular2:禁用formbuilder的元素

来自分类Dev

创建复杂元素的正确方法是什么?

来自分类Dev

关闭列表元素的正确方法是什么?

来自分类Dev

在angular2中设置自定义布尔属性的正确语法是什么

来自分类Dev

是什么导致Angular2中的http函数无法正确触发

来自分类Dev

在select2上禁用ajax缓存的正确方法是什么?

来自分类Dev

Angular2中的ViewChild是什么?

来自分类Dev

Angular2中的“ ...”是什么?目的是什么?

来自分类Dev

禁用SSH密码身份验证的正确方法是什么

来自分类Dev

使用HTMLAgilityPack处理元素内的元素的正确方法是什么?

来自分类Dev

禁用ajax格式的html元素的最佳方法是什么?

来自分类Dev

Angular2 ElementRef nativeElement检查元素是否被禁用

来自分类Dev

Angular2:升级的正确方法

来自分类Dev

Angular2:升级的正确方法

来自分类Dev

创建全局键盘快捷键(也称为热键)的Angular2方法是什么?

来自分类Dev

在angular2中组织路线的最佳方法是什么

来自分类Dev

angular2 应用程序中所有路由的默认方法是什么?

来自分类Dev

在 Angular2 中验证反应式表单字段的最佳方法是什么?

来自分类Dev

正确的方法是什么?

来自分类Dev

在html列表元素中包含空行的正确方法是什么?

来自分类Dev

使用Terraform变量创建多个元素的正确方法是什么?

来自分类Dev

使用jQuery创建HTML元素:正确的方法是什么?

来自分类Dev

在特定版本上安装Polymer元素的正确方法是什么?

Related 相关文章

  1. 1

    缺少在angular2(2种差异方式)文档中访问本机元素的正确方法是什么

  2. 2

    在Angular2 Dart中设置Router和RouterLink的正确方法是什么

  3. 3

    使用angular2 http请求和Django CSRF保护的正确方法是什么?

  4. 4

    在Swift 2中,禁用NSMenuItem的正确方法是什么?

  5. 5

    Angular2获取元素/组件样式的正确方法

  6. 6

    处理从 angular2/4 rxjs 中的多个 http observables 返回的数据串联的正确方法是什么?

  7. 7

    Angular2:禁用formbuilder的元素

  8. 8

    创建复杂元素的正确方法是什么?

  9. 9

    关闭列表元素的正确方法是什么?

  10. 10

    在angular2中设置自定义布尔属性的正确语法是什么

  11. 11

    是什么导致Angular2中的http函数无法正确触发

  12. 12

    在select2上禁用ajax缓存的正确方法是什么?

  13. 13

    Angular2中的ViewChild是什么?

  14. 14

    Angular2中的“ ...”是什么?目的是什么?

  15. 15

    禁用SSH密码身份验证的正确方法是什么

  16. 16

    使用HTMLAgilityPack处理元素内的元素的正确方法是什么?

  17. 17

    禁用ajax格式的html元素的最佳方法是什么?

  18. 18

    Angular2 ElementRef nativeElement检查元素是否被禁用

  19. 19

    Angular2:升级的正确方法

  20. 20

    Angular2:升级的正确方法

  21. 21

    创建全局键盘快捷键(也称为热键)的Angular2方法是什么?

  22. 22

    在angular2中组织路线的最佳方法是什么

  23. 23

    angular2 应用程序中所有路由的默认方法是什么?

  24. 24

    在 Angular2 中验证反应式表单字段的最佳方法是什么?

  25. 25

    正确的方法是什么?

  26. 26

    在html列表元素中包含空行的正确方法是什么?

  27. 27

    使用Terraform变量创建多个元素的正确方法是什么?

  28. 28

    使用jQuery创建HTML元素:正确的方法是什么?

  29. 29

    在特定版本上安装Polymer元素的正确方法是什么?

热门标签

归档