소스 파일을 변경하는 것이 좋지 않습니다. 그러나 당신이 ui 부트 스트랩 소스 파일을 변경하는 것이 괜찮다면, 서로 다른 색상을 적용 할 수 있습니다. 여기 제가 만든 것입니다.
다음은 소스의 변경 사항입니다.
날짜 선택 도구 템플릿 변경 (datepicker.html)
<tr ng-repeat=\"row in rows\">\n" +
" <td ng-show=\"showWeekNumbers\" class=\"text-center\"><em>{{ getWeekNumber(row) }}</em></td>\n" +
" <td ng-repeat=\"dt in row\" class=\"text-center\">\n" +
" <button type=\"button\" style=\"width:100%;\" class=\"btn btn-default btn-sm\" ng-class=\"{'dt-disabled':dt.disabled,'btn-info': dt.selected,'dt-selected': dt.selected,'dt-available':(dt.verified && dt.available),'dt-verified':dt.verified}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\"><span ng-class=\"{'text-muted': dt.secondary}\">{{dt.label}}</span></button>\n" +
" </td>\n" +
" </tr>\n" +
날짜 선택기 컨트롤러 변경 (DatepickerController)
//Your modification starts
this.dateVerified = function(date,mode){
var currentMode = this.modes[mode || 0];
return ($scope.dateVerified && $scope.dateVerified({date: date, mode: currentMode.name}))
}
this.dateAvailable = function(date,mode){
var currentMode = this.modes[mode || 0];
return ($scope.dateAvailable && $scope.dateAvailable({date: date, mode: currentMode.name}))
}
//your modification end
날짜 선택 지침 변경 (날짜 선택기)
.directive('datepicker', ['dateFilter', '$parse', 'datepickerConfig', '$log', function (dateFilter, $parse, datepickerConfig, $log) {
return {
restrict: 'EA',
replace: true,
templateUrl: 'template/datepicker/datepicker.html',
scope: {
dateDisabled: '&',
//your modification starts here
dateVerified:'&',
dateAvailable:'&',
//Your modification ends here
},
ngModel.$setValidity('date', valid);
var currentMode = datepickerCtrl.modes[mode], data = currentMode.getVisibleDates(selected, date);
angular.forEach(data.objects, function(obj) {
obj.disabled = datepickerCtrl.isDisabled(obj.date, mode);
});
//your modification starts here
//set dateVerfied
if(datepickerCtrl.dateVerified){
angular.forEach(data.objects, function(obj) {
obj.verified = datepickerCtrl.dateVerified(obj.date, mode);
});
}
//set date availabe
if(datepickerCtrl.dateAvailable){
angular.forEach(data.objects, function(obj) {
obj.available = datepickerCtrl.dateAvailable(obj.date, mode);
});
}
//Your modification ends here
ngModel.$setValidity('date-disabled', (!date || !datepickerCtrl.isDisabled(date)));
scope.rows = split(data.objects, currentMode.split);
scope.labels = data.labels || [];
scope.title = data.title;
귀하의 코드 템플릿
<datepicker ng-model="model.selectedDate" ng-click="dateClicked();" date-format="yyyy-MM-dd" date-type="string" ng-class="{'opacity-2':model.loadingDate}" style="width: 395px;height: 230px;margin:0 auto;" date-disabled="isDateNonAvailableDate(date, mode)" date-verified="dateVerified(date, mode);" date-available="dateAvailable(date, mode);" show-weeks="true" class="well well-sm" close-text="Close"></datepicker>
컨트롤러
$scope.dateVerified= function(date, mode) {
return true;
$scope.dateAvailable = function(date, mode) {
return true; // to get color
};
귀하의 CSS를
.dt-available{
color: #fff;
background-color: green !important;
border-color: green !important;
}
.dt-disabled{
color: #fff;
background-color: red !important;
border-color: red !important;
}
.dt-selected{
color: #fff;
background-color: blue !important;
border-color: blue !important;
}

아마도 DatePicker 템플릿에서'$ parent.hasEventCreatedByUser (myDate)'를 사용하여 컨트롤러 기능에 액세스 할 수 있습니다. 시도 해봐. –
@HimmetAvsar 불행히도, 작동하지 않습니다. 하지만 난 내 함수 버튼을 사용하는 "miniController"를 만들었고 어떤 방식 으로든 작동합니다. –
http://stackoverflow.com/questions/35872958/disable-specific-single-date-and-multiple-dates -in-angularjs-only-datepicker-an/35874264? noredirect = 1 # comment59706187_35874264 당신이 맞춰야 할 모든 것! –