Angular2 Material2 привязать к onMenuClose

Я пытаюсь определить, когда меню закрывается, чтобы сбросить значение, я использовал close, который выглядит так.

<md-menu #dataActions="mdMenu"  (onMenuClose)="alert('a')">
    <button md-menu-item (click)="doEdit()" *ngIf="!isLocked()">
        <md-icon>edit</md-icon>
        <span>Edit</span>
    </button>
    <button md-menu-item (click)="doSubmit()" *ngIf="isEdit()">
        <md-icon>done</md-icon>
        <span>Submit</span>
    </button>
</md-menu>

Я могу сказать, что я привязан к чему-то существующему, потому что он не выдает ошибку ... однако, когда запускаются события закрытия, он никогда не регистрируется в фактическом событии. У кого-нибудь есть какие-либо идеи? или это ошибка в материале?


person Tim.Burnell    schedule 23.03.2017    source источник
comment
Может быть, попробуйте использовать функцию в вашем файле машинописного текста вместо использования alert()? Как 2_   -  person Edric    schedule 24.03.2017
comment
Изначально я начал с функции ts, и она не вызывалась. Итак, я попробовал предупредить, а затем пришёл опубликовать это. Но можете ли вы подтвердить, что я делаю это правильно?   -  person Tim.Burnell    schedule 27.03.2017


Ответы (1)


Было несколько незначительных проблем, событие onMenuClose запускается на том же уровне, что и mdMenuTriggerFor ... поэтому привязка должна быть для вызывающего элемента, а не для самого меню. Также, как заявил @Edric, это должна быть функция машинописного текста, а не общее предупреждение. Вот еще один работающий фрагмент кода:

<md-icon [mdMenuTriggerFor]="dataActions" (onMenuOpen)="actionMenuOpen(row)" (onMenuClose)="actionMenuClose()" fxFill fxLayoutAlign="center">
    menu
</md-icon>

<md-menu #dataActions="mdMenu">
    <button md-menu-item (click)="doEdit()" *ngIf="!isLocked()">
        <md-icon>edit</md-icon>
        <span>Edit</span>
    </button>
    <button md-menu-item (click)="doSubmit()" *ngIf="isEdit()">
        <md-icon>done</md-icon>
        <span>Submit</span>
    </button>
</md-menu>
person Tim.Burnell    schedule 29.03.2017