Javascript *ngFor指令不显示上下文菜单的菜单项数据右键单击
我在上下文菜单中使用右键单击功能时遇到问题。我的菜单项没有显示,因为我的第二个ngFor=“let row”条件。。。但我需要右键单击选中的行对象,以便从该行传入json值 现在模态正在弹出,但没有显示菜单项按钮,因此我无法使用click事件 我做错了什么 view.component.htmlJavascript *ngFor指令不显示上下文菜单的菜单项数据右键单击,javascript,angular,typescript,angular-material,contextmenu,Javascript,Angular,Typescript,Angular Material,Contextmenu,我在上下文菜单中使用右键单击功能时遇到问题。我的菜单项没有显示,因为我的第二个ngFor=“let row”条件。。。但我需要右键单击选中的行对象,以便从该行传入json值 现在模态正在弹出,但没有显示菜单项按钮,因此我无法使用click事件 我做错了什么 view.component.html <!--Context Right Click Menu--> <mat-menu #contextMenu="matMenu" #contextMenu2
<!--Context Right Click Menu-->
<mat-menu #contextMenu="matMenu" #contextMenu2="matMenu">
<ng-container *ngFor="let funct of FunctionNames">
<ng-container *ngFor="let row">
<div mat-menu-item>
<button mat-menu-item (click)="onContextMenuAction(row)">{{funct}}</button>
</div>
</ng-container>
</ng-container>
</mat-menu>
<!--Context Right Click Menu-->
<mat-menu #contextMenu="matMenu" #contextMenu2="matMenu">
<ng-container *ngFor="let funct of FunctionNames">
<ng-container *ngFor="let row">
<div mat-menu-item>
<button mat-menu-item (click)="onContextMenuAction(row)">{{funct}}</button>
</div>
</ng-container>
</ng-container>
</mat-menu>
第二个
*ngFor
不包含要循环的数组。如果您需要索引,您可以直接在第一个
<mat-menu #contextMenu="matMenu" #contextMenu2="matMenu">
<ng-container *ngFor="let funct of FunctionNames">
<div mat-menu-item>
<button mat-menu-item (click)="onContextMenuAction(funct)">{{funct}}</button>
</div>
</ng-container>
</mat-menu>
您正在尝试获取对模板中“角度材质”菜单数据的引用 您可以使用:
let refrenceName=“dataItemKey”
来完成此操作
它将获得一个名为referencename
的引用,指向键名为dataItemKey
的菜单数据
在您的情况下,它就像:let row=“row”
所以你可以参考它
我刚刚更新了代码。。。所以我需要选定的行对象值。。。不需要索引如果您的灵感是使用let row is material data table,那么我不认为可以在这里应用相同的原则,对于完整的行,您可以简单地返回
funct
作为参数,然后根据您在组件中的需要操作数据,这在代码中是什么样子的?我对答案有点困惑
<mat-menu #contextMenu="matMenu" #contextMenu2="matMenu">
<ng-container *ngFor="let funct of FunctionNames">
<div mat-menu-item>
<button mat-menu-item (click)="onContextMenuAction(funct)">{{funct}}</button>
</div>
</ng-container>
</mat-menu>
onContextMenuAction(funct) {
// you should get entire row data here
}
<mat-menu #contextMenu="matMenu">
<ng-template matMenuContent let-row="row">
<button mat-menu-item (click)="onContextMenuAction1(row)">Action 1</button>
<button mat-menu-item (click)="onContextMenuAction2(row)">Action 2</button>
</ng-template>
</mat-menu>
this.contextMenu.menuData = { 'row': yourValue };