как ограничить открытие контекстного меню в Angular?

#angular #typescript #angular-material #menu

#angular #typescript #angular-материал #меню

Вопрос:

У меня есть вложенная структура div. Основная ширина div 100% имеет одно контекстное меню. Дочерний раздел шириной 25% имеет одно контекстное меню. Когда я нажимаю дочерний div, оба контекстных меню открываются. как ограничить родительское меню? кто-нибудь может помочь

  <div class="icon-td" (contextmenu)="sheetMenu($event);">
        <button mat-icon-button  
          (click)="hideChild(lineitem)">
          <mat-icon class="mat-icon-rtl-mirror">
            {{lineitem.display ? 'expand_less' : 'chevron_right'}}
          </mat-icon>
        </button>
        <div >
          <mat-icon class="note-icon">sticky_note_2_outline</mat-icon>
        </div>
        <mat-form-field floatLabel="never" class="line-item-field"  (contextmenu)="lineItemMenu($event);">
          <input [style.marginLeft.px]="lineitem.level * 16" matInput
           [value]="lineitem.lineItem" [id]="'line_' lineitem.id">
        </mat-form-field>
      </div>
 

открыто несколько меню

Ожидается, что откроется только lineItemMenu. но оба sheetMenu и lineItemMenu открываются.

Ответ №1:

Вы должны добавить event.stopPropagation(); в метод lineItemMenu .