使用Angular Material 2和SideNav进行元素聚焦

时间:2017-02-22 23:28:18

标签: angular angular-material

我是Angular Material 2,无法使用SideNav设置焦点在特定元素上。我尝试了几种似乎不起作用的方法。我有一个侧导航组件:

<md-sidenav #globalsidenav (open)="onNavWindowOpened($event)">

我创建了一个这样的元素:

<a #manageAccount>Manage Account></a>

在我的组件中,我通过ViewChild使用对元素的引用

@ViewChild('manageAccount') manageAccount;

然后在open事件处理程序上尝试并将焦点设置在元素上:

onNavWindowOpened(event) {
  console.log('open event received...');

  this.manageAccount.nativeElement.focus();
}

我也通过查找元素并改变焦点来“手动”尝试它,但无济于事。是否有其他方法可以在这样的场景中起作用?

1 个答案:

答案 0 :(得分:1)

您必须使用以下属性指令:

cdkFocusRegionstart

在你的例子中:

<a #manageAccount cdkFocusRegionstart>Manage Account></a>

然后,一旦sidenav打开,锚点就应该聚焦。

请参阅github上的讨论: https://github.com/angular/material2/issues/3265