Shr*_*i G 3 typescript angular-directive angular6 angular-material-6
我正在包装角度材质菜单组件。我正在扩展 MatMenuTrigger、MatMenuItem,将它们作为单独的指令并在父组件中使用它。在子组件(菜单组件)中,我仅使用 mat-menu 来获取引用,在父组件(菜单演示组件)中,将菜单(位于子组件中)附加到我们想要的任何控件。我不应该在子组件内使用按钮标签,所以我使用 ng-content 从父组件获取内容。我只想公开一些属性来获取该引用。我的问题是如何包装这个参考菜单stackblitzlink。请帮我解决这个问题,提前致谢。
菜单指令不是必需的。您可以公开子级MatMenu并将其作为包含组件的属性进行引用,然后直接与MatMenuTrigger指令一起使用它:
菜单.组件.ts:
@Component({
selector: 'sq-menu',
templateUrl: './menu.component.html',
})
export class MenuComponent {
@ViewChild('menu') matMenu: MatMenu;
}
Run Code Online (Sandbox Code Playgroud)
菜单.组件.html:
<mat-menu #menu="matMenu">
<ng-content></ng-content>
</mat-menu>
Run Code Online (Sandbox Code Playgroud)
用法:
<button mat-raised-button [matMenuTriggerFor]="menu.matMenu">home</button>
<sq-menu #menu>
<button mat-button>
Item1
</button>
</sq-menu>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2312 次 |
| 最近记录: |