2017-02-06 2 views
0

Ich habe eine jquery ui datepicker auf angular app,Jquery Datepicker auf Winkel mit 2 verschiedenen Formaten

es wie folgt definiert ist:

app.directive('dwdatepicker', function() { 
    return { 
     restrict: 'A', 
     require : 'ngModel', 
     link : function (scope, element, attrs, ngModelCtrl) { 
      $(function(){ 
       element.datepicker({ 
        onSelect:function (date) { 
         scope.$apply(function() { 
          ngModelCtrl.$setViewValue(date); 
         }); 
        }, 
        dateFormat: 'dd/mm/yy', 
        changeYear: true, 
        yearRange: "-50:+0" 
       }); 
      }); 
     } 
    } 
}); 

Jetzt möchte ich auf YYYY- den Wert in $ modelValue speichern MM-dd Format, und den Wert für den Benutzer auf TT/MM/JJ Format anzuzeigen.

Wie kann ich es machen?

Wie kombiniert man die Fähigkeiten von jquery ui datepicker mit den Möglichkeiten von eckigen?

Vielen Dank.

Antwort

1

In der onSelect Funktion können Sie eine der folgenden tun:

onSelect:function (date) { 
    scope.$apply(function() { 
     var isoDate = $.datepicker.formatDate('yy-mm-dd', $.datepicker.parseDate('dd/mm/yy', date)); 
     ngModelCtrl.$setViewValue(isoDate); 
    }); 
} 

Oder

onSelect:function (date,) { 
    scope.$apply(function() { 
     var isoDate = $.datepicker.formatDate('yy-mm-dd',$(this).datepicker('getDate')); 
     ngModelCtrl.$setViewValue(isoDate); 
    }); 
} 

Haben Sie nicht jQuery in eine Zeit lang verwendet, um Syntax falsch sein könnte.

+0

Ich dachte, dass die Methode ** $ setViewValue ** ** $ viewValue ** (nicht ** $ modelValue **) aktualisieren, nicht wahr? – banana

Verwandte Themen