2015-10-19 4 views
5

Ich benutze Angular mit UI Bootstrap Datepicker (https://angular-ui.github.io/bootstrap/) und ich versuche, die Tagesklasse zu aktualisieren, um zu zeigen, dass etwas passiert an diesem bestimmten Tag mit der vorhandenen customClass. Dies funktioniert einwandfrei, wenn die übermittelten Daten synchron sind, aber nicht async mit einer $ -Ressource.Angular Bootstrap datepicker benutzerdefinierte Klasse

HTML

<uib-datepicker custom-class="getDayClass(date, mode)" ng-model="dt" min-date="minDate" show-weeks="false" starting-day="1" class="well well-sm" ng-change="selectDateChange()"></uib-datepicker> 

JS

$scope.getDayClass = function (date, mode) { 

    if ($scope.myCalendarEvents.length > 0) { 

     if (mode === 'day') { 

      var dayToCheck = new Date(date).setHours(0, 0, 0, 0); 

      for (var i = 0; i < $scope.myCalendarEvents.length; i++) { 

      var currentDay = new Date($scope.myCalendarEvents[i].startDate).setHours(0, 0, 0, 0); 

      if (dayToCheck === currentDay) { 

       return "full"; 

      } 
     } 

    } 

    return ''; 
}    

}; 

Beispiel sehen, wo der Asynchron-Anruf getätigt wird (. Ps das ist nicht mein Plnkr):

http://plnkr.co/edit/h8PxWfxSEtZuVCct00mD?p=preview

Antwort

4

Ich hatte die Das gleiche Problem, um es zu beheben Ich legte eine ng-if = "Variable" in Element, das die uib-d enthält Atepicker.

„Variable“ sollte myCalendarEvents sein, und wenn die UIB-picker die Daten

verfügbar angezeigt wird
+0

Könnten Sie Ihren Code schreiben dies in Zusammenhang zeigt? Ich habe das gleiche Problem. –