2017-02-22 68 views
1

我是Angular Material 2,並且無法使用SideNav將重點放在特定元素上。我已經嘗試了幾種似乎不起作用的方法。我有一個側面的導航組件作爲例如:使用Angular Material 2和SideNav的元素焦點

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

我創建了一個元素就像這樣:

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

裏面我的組件通過我ViewChild

@ViewChild('manageAccount') manageAccount; 
使用元素的引用

然後在打開的事件處理程序嘗試和設置焦點上的元素:

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

    this.manageAccount.nativeElement.focus(); 
} 

我也嘗試過'手動'查找元素並改變焦點,但無濟於事。有沒有其他方法可以在這樣的情況下工作?

+0

也許你需要阻止事件冒泡這裏提到https://developer.mozilla.org/en/docs/Web/API/HTMLElement/focus#筆記 – shusson

回答

0

你必須使用下面的屬性指令:

cdkFocusRegionstart 

在您的例子:

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

然後,錨應儘快sidenav打開聚焦。

在Github上查看這裏討論: https://github.com/angular/material2/issues/3265

相關問題