Ho una direttiva per inizializzare un jQueryUI ordinabile su un elemento DOM. JQueryUI sortable ha anche una serie di eventi di callback che si attivano su determinate azioni. Ad esempio, quando si ordinano gli elementi di ordinamento start o stop.Parametri del passaggio con EventEmitter
Vorrei passare i parametri di ritorno da un evento del genere tramite la funzione emit()
, in modo da poter effettivamente vedere cosa è successo nella mia funzione di callback. Non ho trovato un modo per passare i parametri attraverso un EventEmiiter
.
Attualmente ho il seguente.
mia direttiva:
@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();
}
}
E questo è il mio Component
che utilizza l'evento emiited dalla direttiva:
@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);
}
}
Come posso ottenere le event
e ui
params nella mia funzione stopSort()
?
Ecco una demo di quello che ho finora: http://plnkr.co/edit/5ACcetgwWWgTsKs1kWrA?p=info
Non riesco a capire cosa dovrebbe essere "ui". Da dove proviene? A cosa dovrebbe riferirsi? –