Angularjs-uib日期选择器中的customClass依赖于promise

customClass in Angularjs uib-datepicker depends on a promise

本文关键字:customClass 依赖于 promise 日期 选择器 Angularjs-uib      更新时间:2023-09-26

我正在使用Angularjs UI bootstap日期选择器,并尝试为某些日子设置自定义类,如页面上的示例所示

这是矿井控制器的一部分

var vm = this;
...
vm.dateOptions = {
        customClass: getTestDaysClass;
};
...
function getTestDaysClass(data) {
    var date = data.date,
        mode = data.mode;
    if (mode === 'day') {
        var dayToCheck = new Date(date).setHours(0,0,0,0);
        for (var i = 0; i < vm.testDays.length; i++) {
            var currentDat = new Date(vm.testDays[i].date).setHours(0,0,0,0);
            if (dayToCheck === currentDat) {
                return vm.testDays[i].status;
            }
        }
    }
    return '';
}

和HTML

<uib-datepicker 
        datepicker-options="user.dateOptions">
</uib-datepicker>

问题是我从服务的后端调用中得到的数组vm.testDays。当加载页面时,它还不在控制器的作用域中,因此应用程序崩溃并出现以下错误。你能给我一个如何解决这个问题的提示吗?让日期选择器等待承诺解决的某种方法。

我也遇到了同样的问题,我在包装器div中使用了"ng-if"标记,该包装器div带有一个变量,当我得到日期时,该变量将其值更改为true。

在html:

<div ng-if="calendarLoaded">
    <uib-datepicker ng-model="dt" class="well well-sm" datepicker-options="options"></uib-datepicker>
</div>

在我的指令中:

$scope.calendarLoaded = false;
$http.get(...)
.then(function(response)
{
  $scope.calendarLoaded = true;
  {... other code here ...}
});

我希望这能帮助你。