Ich habe eine Direktive, um eine jQueryUI Sortierung auf ein DOM-Element zu initialisieren. Die Sortierfunktion jQueryUI verfügt auch über eine Reihe von Rückrufereignissen, die bei bestimmten Aktionen ausgelöst werden. Zum Beispiel, wenn Sie start oder stop Sortierelemente.Pass Parameter mit EventEmitter
Ich möchte die Rückgabeparameter von einem solchen Fall durch die emit()
Funktion zu übergeben, so kann ich wirklich sehen, was in meinem Callback-Funktion passiert. Ich habe einfach keine Möglichkeit gefunden, Parameter über eine EventEmiiter
zu übergeben.
Ich habe derzeit folgendes.
Meine Richtlinie:
@Directive({
selector: '[sortable]'
})
export class Sortable {
@Output() stopSort = new EventEmitter();
constructor(el: ElementRef) {
console.log('directive');
var options = {
stop: (event, ui) => {
this.stopSort.emit(); // How to pass the params event and ui...?
}
};
$(el.nativeElement).sortable(options).disableSelection();
}
}
Und das ist mein Component
, die das Ereignis in der Richtlinie emiited verwendet:
@Component({
selector: 'my-app',
directives: [Sortable],
providers: [],
template: `
<div>
<h2>Event from jQueryUI to Component demo</h2>
<ul id="sortable" sortable (stopSort)="stopSort(event, ui)">
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
</ul>
</div>
`
})
export class App {
constructor() {
}
stopSort(event, ui) { // How do I get the 'event' and 'ui' params here?
console.log('STOP SORT!', event);
}
}
Wie kann ich die event
und ui
params in meiner stopSort()
Funktion erhalten ? Hier
ist eine Demo von dem, was ich bisher: http://plnkr.co/edit/5ACcetgwWWgTsKs1kWrA?p=info
Ich bin nicht in der Lage herauszufinden, was 'ui' sein sollte. Woher kommt das? Was sollte sich darauf beziehen? –