如何使用角度引导日历为重复事件提供 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?的主要内容,如果未能解决你的问题,请参考以下文章

离子框架和角度 ui 日历问题?

如何从 Caldav 客户端为 iCloud 日历删除重复的事件条目

如何每 x 秒重复 ICS 文件中的事件?

在具有全日历4和角度8的init上加载事件

如何使用android中的回收器视图将事件放在日历中[重复]

查找活动组织者 - Android 日历活动