从Angular Material Documentation 中,我可以direction在菜单组件上使用一个属性:
direction: Direction:菜单的布局方向。
这意味着有一个类型, Direction,但我找不到它,也不知道如何在菜单组件上使用它。
我尝试了以下方法,但我不确定可以在direction-attribute 中放入哪些值。我以为我可以使用类似Direction.UP或 的东西Direction.DOWN,但我无法Direction在我的项目中找到该类。是否有隐藏的地方可以从中导入?
<button mat-raised-button type="button" [matMenuTriggerFor]="saveBtn" color="primary">Ny rad</button>
<mat-menu #saveBtn="matMenu" [direction]="'up'"> <!-- Here I am using [direction], but do not know what to put as a value there, that is of type Direction -->
<button mat-menu-item (click)="save('1')">Save 1</button>
<button mat-menu-item (click)="save('2')">Save 2</button>
</mat-menu>
Run Code Online (Sandbox Code Playgroud)
编辑
搜索了一段时间后,我发现我可以使用值'ltr'and 'rtl',我不得不在使用matMenuTriggerFor- 选择器的元素上使用它。
Direction在 Visual Studio Code 中声明了具有该类型的变量后,它建议我使用import { Direction } from '@angular/cdk/bidi';,并且该类型如下所示:
export declare type Direction = 'ltr' | 'rtl';
Run Code Online (Sandbox Code Playgroud)
即使我发现了这一点,我也收到一条错误消息,指出
模板解析错误:无法绑定到“direction”,因为它不是“mat-menu”的已知属性。
当我尝试direction在mat-menu-element上使用属性时,即使文档说我可以使用方向属性。难道我做错了什么?
您可能正在寻找一种自定义菜单位置的方法。
如果是这样,您可以使用yPosition和/或xPosition属性来更改菜单显示的位置。
以下是属性代表的内容:
yPosition
above|below例子:
<button mat-icon-button [matMenuTriggerFor]="appMenu">
<mat-icon>more_vert</mat-icon>
</button>
<!-- Shows the menu above the button/trigger -->
<mat-menu yPosition="above" #appMenu="matMenu">
<button mat-menu-item>Settings</button>
<button mat-menu-item>Log out</button>
</mat-menu>
Run Code Online (Sandbox Code Playgroud)xPosition
before|after例子:
<button mat-icon-button [matMenuTriggerFor]="appMenu">
<mat-icon>more_vert</mat-icon>
</button>
<!-- Shows the menu before the button/trigger -->
<mat-menu xPosition="before" #appMenu="matMenu">
<button mat-menu-item>Settings</button>
<button mat-menu-item>Log out</button>
</mat-menu>
Run Code Online (Sandbox Code Playgroud)有关更多信息,请查看文档。
将从父容器mat-menu继承属性,而不导入...请注意父div上的dircdkdir="rtl"
<div dir="rtl">
<button mat-button [matMenuTriggerFor]="menu">Menu</button>
<mat-menu #menu="matMenu">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
</div>
Run Code Online (Sandbox Code Playgroud)
斯塔克闪电战
https://stackblitz.com/edit/angular-ol2cz5?embed=1&file=app/menu-overview-example.html
修订
mat-menucdk/bidi从这里自动导入menu-directive.ts。
directionality.ts在 bidi 中,如果未指定任何内容,则此行默认定义 ltr 。
this.value = (value === 'ltr' || value === 'rtl') ? value : 'ltr';
Run Code Online (Sandbox Code Playgroud)
directionality.ts从父容器或全局文档获取此值的方式。ltr和rtl是您唯一的选择。dir不是您要查找的属性。| 归档时间: |
|
| 查看次数: |
4532 次 |
| 最近记录: |