2016-04-25 7 views
2

Ich habe einige Probleme, die Änderung Ereignis zu erfassen, wenn ich das jQuery Datepicker-Plugin verwenden und ich versuche, die (ändern) -Methode zu verwenden, um die Änderung zu fangen, aber scheint, dass, wenn ich bin Mit diesem Plugin kann eckig es nicht fangen.Ändern Ereignis mit jQuery Datepicker und Angular 2

Ich habe die Datepicker-Initialisierung entfernt und funktioniert gut, aber wenn ich es wieder benutze ... funktioniert nicht.

Jemand kann mir helfen!

Vielen Dank.

+0

die Jquery Datepicker überschreibt das Änderungsereignis des Elements mit seiner eigenen Logik, siehe http://stackoverflow.com/questions/27506111/jquery-datepicker-change-event-trigger-an d-inputs-default-change-event – Ripun

+0

Hallo, danke für deine Antwort, aber das Problem ist, wenn ich versuche, die Datei zu kompilieren, zeige ich einen Fehler wie diesen: "Objektliteral kann nur bekannte Eigenschaften angeben, und 'onSelect' existiert nicht im Typ 'DatepickerOptions' "aus diesem Grund kann ich den Quellcode nicht übersetzen. –

Antwort

1

Sie könnten die folgende Anweisung implementieren:

@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); 
     } 
    }); 
    } 
} 

diese Weise können Sie eine change Veranstaltung wie diese zu fangen in der Lage:

@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); 
    } 
} 

dieses plunkr Siehe: https://plnkr.co/edit/TVk11FsItoTuNDZLJx5X?p=preview

+0

Ihre Antwort funktioniert nicht, aber Sie haben mir einen anderen Weg gelehrt, die eckigen 2 Komponenten zu verwenden! Danke! –