Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度传感器中的dhtmlx调度程序冲突检测_Angularjs_Collision_Dhtmlx Scheduler - Fatal编程技术网

Angularjs 角度传感器中的dhtmlx调度程序冲突检测

Angularjs 角度传感器中的dhtmlx调度程序冲突检测,angularjs,collision,dhtmlx-scheduler,Angularjs,Collision,Dhtmlx Scheduler,我已经遵循了教程,使调度器与angular一起工作。不过我有个问题。 人们只能通过我自己的表单添加事件,而不能通过调度程序本身,因为他们必须选择要添加到事件中的图像 但这使得scheduler.collision无法工作。我仍然可以在相同的时间跨度内添加事件。另外,如果我想覆盖checkCollision方法,我会在控制台中得到一个错误,该方法未知 我真的不知道如何使两者一起工作,因为我是新的角度 我的计划程序指令: myAppProfile.directive('dhxScheduler',

我已经遵循了教程,使调度器与angular一起工作。不过我有个问题。 人们只能通过我自己的表单添加事件,而不能通过调度程序本身,因为他们必须选择要添加到事件中的图像

但这使得scheduler.collision无法工作。我仍然可以在相同的时间跨度内添加事件。另外,如果我想覆盖checkCollision方法,我会在控制台中得到一个错误,该方法未知

我真的不知道如何使两者一起工作,因为我是新的角度

我的计划程序指令:

myAppProfile.directive('dhxScheduler', function() {
        return {
        restrict: 'A',
        scope: false,
        transclude: true,
        template:'<div class="dhx_cal_navline" ng-transclude></div><div class="dhx_cal_header"> 
                      </div><div class="dhx_cal_data"></div>',

        link:function ($scope, $element, $attrs, $controller){
          //default state of the scheduler
          if (!$scope.scheduler)
          $scope.scheduler = {};
          $scope.scheduler.mode = $scope.scheduler.mode || "month";
          $scope.scheduler.date = $scope.scheduler.date || new Date();

          //watch data collection, reload on changes
          $scope.$watch($attrs.data, function(collection){
                 if(collection) {

            scheduler.clearAll();
            scheduler.parse(collection, "json");


           }

          }, true);

          //watch mode and date
          $scope.$watch(function(){
            return $scope.scheduler.mode + $scope.scheduler.date.toString();
          }, function(nv, ov) {
            var mode = scheduler.getState();

            if (nv.date != mode.date || nv.mode != mode.mode)
              scheduler.setCurrentView($scope.scheduler.date, $scope.scheduler.mode);
          }, true);

          //size of scheduler
          $scope.$watch(function() {
            return $element[0].offsetWidth + "." + $element[0].offsetHeight;
          }, function() {
            scheduler.setCurrentView();
          });

          //styling for dhtmlx scheduler
          $element.addClass("dhx_cal_container");

          //init scheduler
          scheduler.config.xml_date="%Y-%m-%d %H:%i";
          scheduler.config.dblclick_create = false;
          scheduler.config.drag_create = false;
          scheduler.config.drag_move = true;
          scheduler.config.readonly = false;
          scheduler.config.touch= true; 
          scheduler.config.collision_limit = 1; //this does not give an error but does not work
          scheduler.attachEvent("onEventLoading", function(ev){ //this gives error
                return scheduler.checkCollision(ev);             
           });
          scheduler.init($element[0], new Date(), "month");
          scheduler.load("agendaController.php", "json");
          var dp = new dataProcessor("agendaController.php");
          dp.init(scheduler); 


        }
      }
});

确保正在加载ext/dhtmlxscheduler_limit.js,如果没有此文件,将不会定义checkCollision方法

此外,使用onEventLoading中的checkCollision非常昂贵(您将有n*n*n/4个检查)。在将数据发送到服务器端之前,您可以使用类似next的代码

var id = scheduler.addEvent({ event object details here })
if (scheduler.getEvent(id)){
  //there is no collision, server side saving data call can be initiated
} else {
  //collision detected, event *not added*, show some message for the user
}

我在标题中添加了该文件,但仍然找不到checkCollision:“UncaughtTypeError:Object#没有方法‘checkCollision’”。你会把代码放在哪里来添加事件?我在angular还是新手,我有scheduler指令和addEventController,但是在addEventController中我无法访问scheduler。你能给我指一下正确的方向吗?谢谢我编写了自己的服务器端代码,检查数据库中是否存在事件,如果存在,则向用户发送消息。
var id = scheduler.addEvent({ event object details here })
if (scheduler.getEvent(id)){
  //there is no collision, server side saving data call can be initiated
} else {
  //collision detected, event *not added*, show some message for the user
}