2017-03-23 3 views
0

Ich versuche zu erkennen, wenn das Menü geschlossen wird, um einen Wert zu deaktivieren, habe ich schließen, die wie folgt aussieht.Angular2 Material2 Bindung an onMenuClose

<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> 

Ich kann ich bin etwas verbindlich sagen, dass, weil es nicht existiert wirft einen Fehler ... aber wenn die Nähe Ereignisse führen Sie es nie zum eigentlichen Ereignisse registriert. Hat jemand irgendwelche Ideen? oder ist das ein Materialfehler?

+0

Vielleicht versuchen Sie eine Funktion in Ihrer Typoskript-Datei anstelle von 'alert()'? Wie 'doSomething: void {alert ('a')}' ' – Edric

+0

Ich begann ursprünglich mit einer ts-Funktion und es wurde nicht aufgerufen. Also habe ich versucht, aufmerksam zu werden, um das hier zu posten. Aber kannst du bestätigen, dass ich es richtig mache? –

Antwort

0

Es gab ein paar kleinere Probleme, das Ereignis onMenuClose wird auf der gleichen Ebene wie der mdMenuTriggerFor ausgelöst ... daher musste die Bindung auf dem aufrufenden Element und nicht auf dem Menü selbst stehen. Wie @Edric sagte, musste es eine Typoskript-Funktion und keine allgemeine Warnung sein. Hier ist ein anderes Code-Snipit, das funktioniert:

<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>