我是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();
}
我也通过查找元素并改变焦点来“手动”尝试它,但无济于事。是否有其他方法可以在这样的场景中起作用?
答案 0 :(得分:1)
您必须使用以下属性指令:
cdkFocusRegionstart
在你的例子中:
<a #manageAccount cdkFocusRegionstart>Manage Account></a>
然后,一旦sidenav打开,锚点就应该聚焦。
请参阅github上的讨论: https://github.com/angular/material2/issues/3265