我正在包装角度材质菜单组件。我正在扩展 MatMenuTrigger、MatMenuItem,将它们作为单独的指令并在父组件中使用。在子组件(Menu 组件)中,我仅使用 mat-menu 获取引用,在父组件(Menu-demo 组件)中,将菜单(位于子组件中)附加到我们想要的任何控件。我不应该在子组件中使用按钮标签,所以我使用 ng-content 从父组件获取内容。我只想公开一些属性来获取该引用。我的问题是如何包装这个参考菜单stackblitzlink。请帮我解决这个问题,在此先感谢。
问问题
1646 次
1 回答
4
菜单指令不是必需的。您可以公开子MatMenu
项并将其作为包含组件的属性引用,并直接与MatMenuTrigger
指令一起使用:
menu.component.ts:
@Component({
selector: 'sq-menu',
templateUrl: './menu.component.html',
})
export class MenuComponent {
@ViewChild('menu') matMenu: MatMenu;
}
menu.component.html:
<mat-menu #menu="matMenu">
<ng-content></ng-content>
</mat-menu>
用法:
<button mat-raised-button [matMenuTriggerFor]="menu.matMenu">home</button>
<sq-menu #menu>
<button mat-button>
Item1
</button>
</sq-menu>
于 2018-09-12T18:00:24.663 回答