2015-10-19 3 views
5

Я использую Angular с UI Bootstrap Datepicker (https://angular-ui.github.io/bootstrap/), и я пытаюсь обновить класс дня, чтобы показать, что что-то происходит в этот конкретный день с использованием существующего customClass. Это отлично работает, когда прошедшие даты синхронизируются, но не асинхронны с использованием ресурса $.Angular Bootstrap datepicker custom class

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 ''; 
}    

}; 

См пример, в котором вызов асинхронной сделан (. П.с. это не мой Plnkr):

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

ответ

4

Я имел одна и та же проблема, чтобы исправить это, я поместил в элемент ng-if = "variable", который содержит uib-d atepicker.

«переменная» должна быть myCalendarEvents, и при отображении UIB-DatePicker данные доступны

+0

Не могли бы вы опубликовать свой код, показывающий это в контексте? У меня такая же проблема. –