Kurzer Weg zu weisen-Datum ngbDatepicker

Ich bin mit reaktiven Formen in meinem Eckige 2-webapp und ich bin die Probleme der Zuordnung von Datum zu ngbDatepicker (ngbootstrap 1-alpha-6). Mein Objekt hat eines date-Objekts wie:

var myObject = {date: new Date(1, 9, 2016)};

und in meinem reaktive form, es ist so konfiguriert, wie folgt:

input.form-control(name='date', ngbDatepicker, #date="ngbDatepicker", placeholder='jj.mm.aaaa', formControlName='date', type="text")

und ich patch das Formular wie dieses:

this.form.patchValue({myObject: myObject});

Das problem ist, dass ngbDatepicker nehmen Sie das Datum mit der folgenden Struktur:

{day: DD, month: MM, year: YYYY}

Ich fand einen workaround, der funktioniert:

this.form.controls.myObject.controls.date.valueChanges
        .map((value) => {
            if(value) {
                if (typeof value.getMonth === 'function') {
                    this.form.controls.myObject.patchValue({
                        date: {
                            day: value.getUTCDay(),
                            month: value.getUTCMonth(),
                            year: value.getUTCFullYear()
                        }
                    });
                }
            }
            return value;
        })
        .subscribe((value) => {

        });

Und alles funktioniert wie erwartet (das Datum wird jedesmal aktualisiert, wenn form bekommt gepatcht) aber es ist viel zu ausführlich (18 Zeilen code) und meine form hat ein Dutzend Termine!

Also meine Frage ist kann ich das erreichen das gleiche Ergebnis mit einem viel kürzere Lösung?

verschieben Sie den code in eine Funktion und rufen Sie es von der Karte.
Naja...ich erwartete eine kreative Lösung, die mit einer Richtlinie oder einem Rohr!

InformationsquelleAutor ncohen | 2016-10-02

Schreibe einen Kommentar