【问题标题】:angularjs fullcalendar eventclick scopeangularjs fullcalendar eventclick范围
【发布时间】:2016-12-01 18:32:28
【问题描述】:

我有一个名为 CalendarDemoCtrl 的控制器,其中我有完整日历的配置,如下所示。

$scope.uiConfig = {
        calendar: {
            height: 600,
            editable: false,
            locale:'es',
            //navLinks: true, // can click day/week names to navigate views
            businessHours: true, // display business hours
            allDaySlot: false,
            slotLabelFormat : 'h:mm a',
            timeFormat: 'h:mm a',
            navLinks: true,
            navLinkDayClick: function(date, jsEvent) {
                cc['mycalendar'].fullCalendar('changeView','agendaDay');
                cc['mycalendar'].fullCalendar('gotoDate',date);
                $scope.currentDate = cc['mycalendar'].fullCalendar("getView").title;
           },

            defaultView: 'agendaDay',
            slotDuration: '00:15:00',
            header: false,  // remove default toolbar
            //editable: true,   
            eventRender: $scope.eventRender,
            eventClick : $scope.onEventClick
            //dayClick : $scope.onEventClick
        }
    }

在同一个控制器中我定义了 $scope.onEventClick 和 $scope.addEvent。

$scope.addEvent = function() {

        $rootScope.oldFormData = $.extend( true, {}, $scope.formData );

        $scope.entroModal = true;
        $scope.modalOpen('new');
    };
$scope.onEventClick = function(index) {


        $scope.formData = $.extend( true, {}, index.cita );
        var date_inicio = new Date(index.cita.inicio) ;
        $scope.formData.inicio = date_inicio.getDate() + "/" + ( date_inicio.getMonth() + 1) + "/"+ date_inicio.getFullYear()+ " " + date_inicio.getHours()+ ":" + (date_inicio.getMinutes()<10?'0':'') + date_inicio.getMinutes();
        var date_fin = new Date(index.cita.fin) ;
        $scope.formData.fin = date_fin.getDate() + "/" + ( date_fin.getMonth() + 1) + "/"+ date_fin.getFullYear()+ " " + date_fin.getHours()+ ":" + (date_fin.getMinutes()<10?'0':'') + date_fin.getMinutes();
        $.extend( $scope.formData , $rootScope.oldFormData );
        $scope.modalOpen('edit');
    };

当用户想要添加事件时,第一个与按钮一起使用,第二个用于编辑日历中的事件。但是,当添加事件时,范围会低于 eventclick,因此当我添加事件时,它会显示在日历中,当我单击并编辑事件时,事件不会在日历中修改,因为它是上面的范围。

  1. $rootscope: id 1

  2. $scope: id 10(这是 eventclick 工作)

  3. child $scope: id 11(这是 addevent 工作)

这完全是一团糟,我很困惑这是怎么发生的,我怎么能让这两个事件在同一个范围内?请指教谢谢!

【问题讨论】:

    标签: javascript jquery angularjs angularjs-scope fullcalendar


    【解决方案1】:

    我仍然不确定为什么会发生这种情况以及如何永久修复它,但我的解决方法是广播一个事件并确保在收听它时它具有相同的范围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 2015-10-23
      • 2020-05-03
      • 1970-01-01
      相关资源
      最近更新 更多