当我使用 jQuery datepicker 插件时,我在捕获更改事件时遇到一些问题,并且我尝试使用 (change) 方法来捕获更改,但似乎当我使用此插件时,角度无法捕获它。
@Component({
selector: 'foo-element',
template: '<input type="text" (change)="checkDates($event)" id="foo_date_picker" class="datepicker">'
})
export class FooComponentClass implements AfterViewInit {
ngAfterViewInit():any{
$('#end_day').datepicker();
}
private function checkDates(e){
console.log("Please, catch the change event ): ");
}
}
我已经删除了日期选择器初始化并且工作正常,但是当我再次使用它时......不起作用。
有人可以帮助我!
非常感谢。
您可以实施以下指令:
@Directive({
selector: '[datepicker]'
})
export class DatepickerDirective {
@Output()
change:EventEmitter<string> = new EventEmitter();
constructor(private elementRef:ElementRef) {
}
ngOnInit() {
$(this.elementRef.nativeElement).datepicker({
onSelect: (dateText) => {
this.change.emit(dateText);
}
});
}
}
这样你就能够抓住change
像这样的事件:
@Component({
selector: 'app',
template: '<input type="text" id="end_day" (change)="checkDates($event)" class="datepicker" datepicker>',
directives: [ DatepickerDirective ]
})
export class App implements AfterViewInit {
checkDates(e){
console.log("Please, catch the change event ): "+e);
}
}
看看这个笨蛋:https://plnkr.co/edit/TVk11FsItoTuNDZLJx5X?p=preview https://plnkr.co/edit/TVk11FsItoTuNDZLJx5X?p=preview
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)