我正在使用Angularjs UI bootstap datepicker,并尝试设置特定日期的自定义类,因为它在所提供的页面上的示例中显示了
这是我的控制器的一部分
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
。当页面加载时,它还不在控制器的范围内,因此应用程序与following error崩溃。
你能给我一个如何解决这个问题的提示吗?一种使datepicker等待承诺解决的方法。
答案 0 :(得分:1)
我遇到了同样的问题,我将“ng-if”标记用于包含div的包装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 ...}
});
我希望这可以帮到你。