听起来有点奇怪,但我无法从控制器上关闭Angular Material菜单。
按钮开启菜单:
<md-icon class="add-note__icon" [mdMenuTriggerFor]="paletteMenu">
palette
</md-icon>
菜单:
<md-menu #paletteMenu="mdMenu">
<div
(click)="setColor($event, 'white')"
mdTooltip="White"
></div>
...
</md-menu>
在我的控制器中,我引用了我的菜单:
@ViewChild('paletteMenu') menu: any;
应关闭它的功能:
setColor(event, color) {
event.stopPropagation();
this.menu.closeMenu();
}
每次点击其中一个选项时,都会收到错误消息:
TypeError: this.menu.closeMenu is not a function
我的代码出了什么问题?
答案 0 :(得分:2)
closeMenu()
是MdMenuTrigger
的函数,而不是MdMenu
,这就是错误发生的原因。在您的图标中为mdMenuTrigger
创建参考,并在组件代码中使用它。
HTML:
<md-icon class="add-note__icon"
#paletteMenuTrigger="mdMenuTrigger"
[mdMenuTriggerFor]="paletteMenu">
palette
</md-icon>
TS:
export class SelectFormExample {
@ViewChild('paletteMenuTrigger') menu: any;
setColor(event, color) {
event.stopPropagation();
this.menu.closeMenu();
}
}