Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 上下文菜单上的文件元素未定义-为什么?_Angular_Typescript_Contextmenu - Fatal编程技术网

Angular 上下文菜单上的文件元素未定义-为什么?

Angular 上下文菜单上的文件元素未定义-为什么?,angular,typescript,contextmenu,Angular,Typescript,Contextmenu,我正在尝试重建我的上下文菜单(今天第2部分)。现在我对mu file元素的未定义值有疑问。因此,我无法删除、重命名或执行任何操作 HTML [...] [...] {{element.name} ts public callFunction(菜单:菜单元素,文件?:文件元素):void{ console.log(file);//首先,这是一个被遗忘的事件,变量没有命名项。似乎使用示例代码进行了修改,您会发现matMenuTriggerData会将数据绑定到您的ng模板 此外,请记住将le

我正在尝试重建我的
上下文菜单(今天第2部分)。现在我对mu file元素的未定义值有疑问。因此,我无法删除、重命名或执行任何操作

HTML


[...]
[...]
{{element.name}
ts

public callFunction(菜单:菜单元素,文件?:文件元素):void{

console.log(file);//首先,这是一个被遗忘的事件,变量没有命名
。似乎使用示例代码进行了修改,您会发现
matMenuTriggerData
会将数据绑定到您的
ng模板


此外,请记住将
let item
设置为变量,变量将以某种方式在ts中定义。否则,该项将绑定到
$implict


[...]
    <mat-list-item *ngFor="let element of fileElements" (click)="navigate(element)" (contextmenu)="onContextMenu($event, element)" >
        [...]
    </mat-list-item>
[...]
<div style="visibility: hidden; position: fixed"
    [style.left]="contextMenuPosition.x"
    [style.top]="contextMenuPosition.y"
    [matMenuTriggerFor]="contextMenuTag">
</div>
<mat-menu #contextMenuTag="matMenu">
    <ng-template matMenuContent let-item>
    <div *ngFor="let element of contextMenu">
      <button *ngIf="!element.seperator" mat-menu-item (click)="callFunction(element, item)">
        {{element.name}}
      </button>
      <mat-divider *ngIf="element.seperator"></mat-divider>
    </div>
    </ng-template>
</mat-menu>
public callFunction(menu: MenuElement, file?: FileElement): void {
    console.log(file);  // <-- UNDEFINED THERE
    switch(menu.action) {
      case 'delete': {
        this.deleteElement(file);
        break;
      }
      [...]
    }
  }

private deleteElement(element: FileElement): void {
    this.elementRemoved.emit(element);
  }