Ich benutze das Popup-Bootstrap-Popup für die Angular UI mit dieser benutzerdefinierten Anweisung für Plunker ( Ссылка ):
%Vor%Dies funktioniert einwandfrei und das Datum ist gut formatiert, wenn Sie ein Datum aus dem Kalender-Popup auswählen. Wenn ich jedoch ein Datum des ng-Modells im Controller festlege, wird das Datum nicht als 'dd MMMM yyyy' formatiert und wird als Datumsstring wie Sat Okt 01 2016 01:00:00 GMT + 0100 (GMT Daylight) zurückgegeben Zeit). Im Plunker kann ich jedoch ein Datum im Controller einstellen und es ist gut formatiert. Hier ist mein HTML für die Datumsauswahl:
%Vor% In meinem Controller startDate.value = new Date();
Ich bin mir nicht sicher, wo das Problem liegen könnte. Das Bild unten zeigt, was ich zurückbekomme.
Endlich eine Lösung dafür gefunden. Ich habe von Angular-UI-Bootstrap auf die uib-datepicker-Direktive gewechselt und formatiere das Datum jetzt korrekt, wenn das Datum im Controller gesetzt wird! Hier ist meine HTML-Vorlage aus meiner Direktive als Referenz:
%Vor%Ich habe Ihren Code lokal ausprobiert und er schien problemlos zu funktionieren. Ich habe verschiedene Möglichkeiten ausprobiert, das Datum zu ändern und wieder funktioniert alles. Es scheint einen kleinen Unterschied zwischen dem Beispiel in PLNKR und dem von Ihnen geposteten Beispiel zu geben, insbesondere der Art, wie Sie auf das Datum verweisen (Sie geben an, dass Sie startDate.value = new Date (); verwenden , aber in PLNKR sehe ich ng-model="dtpValue1" . Das lässt mich glauben, dass es noch andere Dinge gibt, die du vermisst, und ich schlage vor, ein komplettes Beispiel in einer ZIP-Datei zu machen, die lokal testbar ist Da es auch eine Chance gibt, dass niemand es wieder reproduzieren kann, wäre es nützlich, die Liste aller Chrome-Erweiterungen und des Betriebssystems zu sehen, die Sie haben, und vor allem sollten Sie versuchen, sie auf anderen Maschinen zu reproduzieren und die Ergebnisse zu melden .
Im Allgemeinen funktioniert die Arbeit erwartungsgemäß auf jeder Maschine, die ich getestet habe, und ich sehe keinen guten Grund, warum es nicht funktionieren sollte.
Wenn ich das Problem reproduzieren könnte, könnte ich Haltepunkte setzen und genau herausfinden, was vor sich geht, aber im Moment ist das ausgeschlossen und wir sollten uns darauf konzentrieren, wie wir das Problem reproduzieren können.
Die bereitgestellten Informationen scheinen nicht ausreichend zu sein, um dieses Problem zu lösen.
Es ist wegen bootstrap UI Datepicker funktioniert tatsächlich mit String und Sie versuchen, ein JavaScript-Datum Objekt der Variable, die UI Bootstrap arbeitet auf Winkel-Controller zu zuweisen. Sie sind unterschiedliche Datentypen und verursachen den Fehler. Wenn Sie versuchen, den Typ der Variablen zu trösten, nachdem Sie ein Datum aus dem Datepicker-Popup ausgewählt haben. Sie werden sehen, dass es eine Zeichenfolge ist. Also .. Wenn Sie ein Datum von Ihrem Controller nur einstellen möchten, müssen Sie es als Zeichenfolge festlegen, kein JavaScript-Objekt.
Tags und Links javascript html angularjs angularjs-directive angular-ui-bootstrap