Wie Ereignis Delegation für bestimmtes Ziel in Winkeln 2Ereignis Delegation für bestimmtes Ziel Angular 2
Betrachten Sie mit dem unten html
<ul>
<li><span>hello</span><button>button</button></li>
</ul>
und ich mag implementieren Ereignisse Delegation zur Umsetzung des li Ziel, auch wenn Der Benutzer klickte auf den Bereich oder die Schaltfläche in der li, das li-Ereignis wird ausgeführt.
zum Beispiel können wir dies in jquery erreichen mit:
$('ul').on('click', 'li', function() {
console.log($(this)) // always log the li whenever you clicked inside it
})
mein eigentliches Szenario in Winkel:
<div class="list-group" (click)="selectOption($event)">
<button type="button" class="list-group-item" *ngFor="let option of options; let i = index"
[attr.data-value]="option.key" [attr.data-label]="option.displayColumnValue">
<span [title]="option.displayColumnValue ">
{{ option.displayColumnValue }}
<small *ngIf="option.email">({{ option.email }})</small>
</span>
<a *ngIf="option.group" class="drilldown" [attr.data-key]="option.key"><i class="fa fa-chevron-right" aria-hidden="true"></i></a>
</button>
Entschuldigung, warum nicht alle klickbaren Bereich INSIDE ein div und dann ein click-Ereignis auf sie legen? –
Sie können eine Funktion an das (click) -Ereignis im ul-Element binden, aber dies gibt Ihnen nicht die Kontrolle über welches Element geklickt wurde, ohne zusätzliche Logik –
, also gibt es keine Option in eckigen out of the box, um dies zu erreichen, müssen Sie Handle es selbst. –