Il modo in cui l'ho fatto prima è di racchiudere il materiale jQuery di datepicker in una direttiva angolare. Questo è ruvida ma ecco l'idea:
app.directive('dateDirective', function() {
return {
restrict: 'A',
scope: {
onChange: '&'
},
link: function(scope, element, attrs) {
element.datetimepicker({
format: "MM-yyyy"
//all your options here
}).on('changeDate', function(e) {
scope.$apply(function(scope) {
scope.onChange(e.date);
});
});
}
};
});
È possibile catturare l'evento change dall'elemento jQuery e utilizzarlo per chiamare una funzione nel controllore, o semplicemente utilizzarlo per impostare valori di portata o qualsiasi altra cosa:
var app = angular.module('myApp', []);
app.controller('myAppCtrl', function($scope) {
$scope.current = '';
$scope.changedate = function(date){
$scope.current = date;
};
});
Poi basta aggiungere la direttiva per il vostro elemento DOM:
<input date-directive
type="text"
starting-day="2"
show-button-bar="false"
show-weeks="false"
class="form-control addTicketDateInput"
datepicker-popup="dd MMM"
ng-model="startdate"
is-open="openstart"
datepicker-options="dateOptions"
ng-required="true"
close-text="Close" />
poi gli si dice che la funzione portata a chiamare:
<input date-directive onChange='changedate(date)'
type="text"
starting-day="2"
show-button-bar="false"
show-weeks="false"
class="form-control addTicketDateInput"
datepicker-popup="dd MMM"
ng-model="startdate"
is-open="openstart"
datepicker-options="dateOptions"
ng-required="true"
close-text="Close" />
Come ho detto questo è ruvido appena richiamato rapidamente. Se questo non aiuta, estraggo un campione che è stato testato.
Spero che questo aiuti!
Inoltre, c'è una direttiva datepicker qui che potrebbe essere halpful:
https://angular-ui.github.io/bootstrap/
Penso che dovrebbe funzionare, http://plnkr.co/edit/QbtoD2ND46ceoDOXes9x?p=preview, fare clic su first datepicker e controllare l'output della console – ABOS