【发布时间】:2016-05-25 06:21:49
【问题描述】:
我有一个指令来初始化一个可在 DOM 元素上排序的 jQueryUI。 jQueryUI sortable 还具有一组触发某些操作的回调事件。例如,当您对start 或stop 进行排序时。
我想通过emit() 函数传递来自此类事件的返回参数,这样我就可以实际看到我的回调函数中发生了什么。我只是还没有找到通过EventEmiiter 传递参数的方法。
我目前有以下。
我的指令:
@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();
}
}
这是我的Component,它使用指令发出的事件:
@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);
}
}
如何在stopSort() 函数中获取event 和ui 参数?
这是我目前所拥有的演示:http://plnkr.co/edit/5ACcetgwWWgTsKs1kWrA?p=info
【问题讨论】:
-
我无法弄清楚
ui应该是什么。它从何而来?如果参考应该怎么做?
标签: angular eventemitter angular2-directives