如何使用角度引导日历为重复事件提供 dtStart 和 until?
Posted
技术标签:
【中文标题】如何使用角度引导日历为重复事件提供 dtStart 和 until?【英文标题】:how to give dtStart and until for Recurring event using angular bootstrap calendar? 【发布时间】:2016-12-31 21:02:52 【问题描述】:在 angular js 服务文件中,我在这里使用 RRULE.WEEKLY,我想给 dtStart 和直到动态地处理多个事件
$scope.$watchGroup([
$scope.calendarView,
angular.forEach(data, function (value, index)
if(value.recursOn === 'week')
$scope.viewDate = value.startDate,
$scope.viewEndDate = value.endDate
),
], function()
// Use the rrule library to generate recurring events: https://github.com/jkbrzt/rrule
var rule = new RRule(
freq: RRule.WEEKLY,
interval: 1,
byweekday: [RRule.MO],
dtstart: moment($scope.viewDate).toDate(),
until: moment($scope.viewEndDate).toDate()
);
angular.forEach(data, function (value, index)
if(value.recursOn !== 'week')
$scope.schedules.push(value);
);
rule.all().forEach(function(date)
angular.forEach(data, function (value, index)
if(value.recursOn === 'week')
$scope.schedules.push(
matchDesc: value.matchDesc,
teamName: value.teamName,
color: calendarConfig.colorTypes.success,
startDate: new Date(date)
);
);
);
);
在此我试图通过每周重复获得多个事件,因此为此我使用 angular 为每个事件从数据库中获取事件,但如何将多个事件的开始日期和结束日期设置为 dtStart 和直到。
【问题讨论】:
【参考方案1】:为此,您必须这样做。
var rule = ;
$scope.$watchGroup([
$scope.calendarView,
], function()
angular.forEach(data, function (value, index)
// Use the rrule library to generate recurring events:https://github.com/jkbrzt/rrule
if(value.recursOn === 'week')
rule = new RRule(
freq: RRule.WEEKLY,
interval: 1,
byweekday: [RRule.MO],
dtstart: moment(value.startDate).toDate(),
until: moment(value.endDate).toDate()
);
rule.all().forEach(function(date)
if(value.recursOn === 'week')
$scope.schedules.push(
matchDesc: value.matchDesc,
teamName: value.teamName,
color: calendarConfig.colorTypes.success,
startDate: new Date(date)
);
);
);
);
它适用于每周使用 RRULE.WEEKLY 和 dtstart 的重复事件,直到动态到没有事件。
希望对您有所帮助。
【讨论】:
以上是关于如何使用角度引导日历为重复事件提供 dtStart 和 until?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Caldav 客户端为 iCloud 日历删除重复的事件条目