Ich versuche, einen Wrapper für Pickatime (Pickadate) in Winkel 2 zu erstellen, aber die Modelldaten ändern sich nicht, wenn ich eine Zeit auswählen.Angular 2 Component - Modelbinding funktioniert nicht
Meine Wrapper-Komponente sieht wie folgt aus:
import {Component, AfterContentInit, Input, EventEmitter, ElementRef} from 'angular2/core';
@Component({
selector: 'mundo-timepicker',
template: `
<input class="form-control" (click)="onClick()" [(value)]="zeit" />
`
})
export class MundoTimepickerComponent implements AfterContentInit {
@Input() zeit: any;
pickerConfig: Pickadate.TimeOptions = {
format: 'HH:i',
// editable: true,
interval: 30,
}
picker: any;
constructor(private el: ElementRef) {
}
ngAfterContentInit() {
this.picker = jQuery(this.el.nativeElement.children[0]).pickatime(this.pickerConfig);
}
onClick() {
var picker = this.picker.pickatime('picker');
var self = this;
picker.open().on({
set: function (thingSet) {
self.zeit = this.get();
}
});
}
}
ich diese Komponente wie dies in einer Vorlage verwende:
<mundo-timepicker [(zeit)]="myzeit"></mundo-timepicker>
Der Klick funktioniert gut, öffnet sich der Kommissionierer und ich kann meine sehen gewählter Wert in der Eingabe. Wenn ich eine Speicherschaltfläche drücke, um die angegebene Modelleigenschaft "myzeit" zu lesen, erhalte ich den alten Wert.
Ich bin mir nicht sicher, ob dies sogar der richtige Weg ist, einen Wrapper für ein Plugin zu erstellen. Ist es?
Thx!
aktualisieren Ich habe versucht, eine einfachere Komponente ohne Plugin wie pickadate zu bauen, und es funktioniert auch nicht:/
import {Component, Input} from 'angular2/core';
@Component({
selector: 'mundo-input',
template: `
<input class="form-control" [(ngModel)]="zeit" />
`
})
export class MundoInputComponent {
@Input() zeit: string;
}
Auch ich diese Komponente wie dies am raubend:
<mundo-input [(zeit)]="myzeit"></mundo-input>
Die Myzeit-Eigenschaft von der äußeren Komponente wird korrekt injiziert. Wenn ich den Wert manuell ändere und auf die äußere Komponente speichere, hat die myzeit-Eigenschaft den alten Wert.
Ja, ich habe es versucht, aber das funktioniert nicht, vielleicht ist es etwas mit dem Pickatime-Plugin? – Weissvonnix