我有一个使用https://github.com/nekken/ng2-fullcalendar/下面的库用于我的日历,但是这个库中的选项有限,所以我使用完整的日历 api 来扩展以满足业务需求。
所以这里是函数 Viewrender 实现功能,当跨越未来一个月和前一个月时禁用上个月和下个月按钮。
例如)当当前月份是 2018 年 11 月时,按钮应该被禁用 - 如果用户点击 JAn 2019 下一个按钮应该禁用并且用户选择 2018 年 9 月上一个按钮应该被禁用。
我在 angularr 函数中的 jquery 中编写了一个逻辑,任何人都可以将其转换为 angular 6 方式。
onViewRender(view, element) {
// alert(view.intervalStart);
// alert(view.intervalEnd);
// alert(view.start);
// alert(view.end);
// alert(view.title);
// console.log(view.intervalStart);
// console.log(view.intervalEnd);
var now = new Date();
var end = new Date();
end.setMonth(now.getMonth() + 1);
console.log( view.start.format('MM'));//11
console.log(view.start.format('YYYY'));//2018
var cal_date_string = view.start.format('MM')+'/'+view.start.format('YYYY');
var cur_date_string = now.getMonth()+'/'+now.getFullYear();
var end_date_string = end.getMonth()+'/'+end.getFullYear();
if(cal_date_string == cur_date_string) { jQuery('.fc-prev-button').addClass("fc-state-disabled"); }
else { jQuery('.fc-prev-button').removeClass("fc-state-disabled"); }
if(end_date_string == cal_date_string) { jQuery('.fc-next-button').addClass("fc-state-disabled"); }
else { jQuery('.fc-next-button').removeClass("fc-state-disabled"); }
}
Stackblitz 演示: 演示