我已经在Angular Material的GitHub上提出了这个问题,并且按照他们在StackBlitz中的指示进行了操作。但是我仍然无法使其正常工作。
问题如下:
我将@ angular / material从8.0.2更新为8.1.2,并且我的自定义菜单组件停止使用键盘。
问题似乎是在 node_modules/@angular/material/esm2015/menu.js 中,addItem方法为空。
版本8.1.2 node_modules/@angular/material/esm2015/menu.js
/*
* Registers a menu item with the menu.
* @docs-private
* @deprecated No longer being used. To be removed.
* @breaking-change 9.0.0
*/
/**
* @param {?} _item
* @return {?}
*/
addItem(_item) {}
版本8.0.2 node_modules/@angular/material/esm2015/menu.js
addItem(_item) {
if (this._items.indexOf(item) === -1) {
this._items.push(item);
this._itemChanges.next(this._items);
}
}
下面的代码在更新到8.1.2之前有效
// MenuComponent
@ViewChild('menu', { static: false }) menu: MatMenu;
@ContentChildren(MenuItemComponent) menuItems: QueryList<
MenuItemComponent
>;
@ContentChildren(MenuItemComponent) menuItems: QueryList<
MenuItemComponent
>;
this.menuItems.forEach(menuItem => {
this.menu.addItem(menuItem.matMenuItem);
});
// MenuItemComponent
@ViewChild(MatMenuItem, {static: false}) matMenuItem: MatMenuItem
如果有人可以提供一个工作正常的StackBlitz示例,您可以在其中使用Tab
来突出显示菜单,点击Enter
以打开菜单并使用箭头键↑< / kbd> ↓来浏览所有菜单项!