【问题标题】:How to set matButton active (focused) Angular?如何设置 matButton 活动(聚焦)Angular?
【发布时间】:2021-08-04 10:40:59
【问题描述】:

当用户第一次和下一次进入页面时,放置的按钮没有聚焦并以灰色突出显示。我尝试设置自动对焦:

<button mat-raised-button color="primary" autofocus>{{'recovery' | translate}}</button>

我认为是Material按钮的不完善。

如何在最后一个 Angular 中设置聚焦材质按钮?

【问题讨论】:

    标签: angular angular-material


    【解决方案1】:

    您可以在组件的生命周期钩子 ngAfterViewInit 处将焦点设置为按钮,例如:

    模板

    <button mat-raised-button color="primary" #btnRef="matButton">{{'recovery' | translate}}</button>
    

    Ts 文件

    ...
    @ViewChild('btnRef') buttonRef: MatButton;
    ...
    ngAfterViewInit() {
       this.buttonRef.focus();
    }
    ...
    

    希望对您有所帮助。

    【讨论】:

    • 当我试图专注于打开的 matDialogModal 中的按钮时,这对我不起作用。
    【解决方案2】:
    <button mat-button #btnFocus=matButton [autofocus]="btnFocus.focus()">Post</button>
    

    【讨论】:

      【解决方案3】:

      看起来 Angular 材质已经有了相应的指令。检查Angular A11y

      <button mat-button cdkFocusInitial>Ok</button>
      
      【解决方案4】:

      可以使用MatButton的focus方法。

      <button mat-raised-button #button>{{ 'recovery' | translate }}</button>
      
      @ViewChild('button') button;
      
      ngOnInit() {
        this.button.focus()
      }
      

      【讨论】:

        【解决方案5】:
        <button mat-raised-button color="primary" #btn [autofocus]="btn.focus()">{{'recovery' | translate}}</button>
        

        【讨论】:

        • 请详细说明问题所有者做错了什么
        • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助,质量更高,更有可能吸引投票。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多