角材料-菜单的“ addItem”方法未注册自定义组件

时间:2019-08-15 05:48:55

标签: angular-material

我已经在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> 来浏览所有菜单项!

0 个答案:

没有答案