0

これを使用してスケジューラからデータベースにデータを送信できるドキュメントで見つけました:

var dp = new dataProcessor(url)
dp.init(myobj)

編集 コードの $watch-part 内にこれらのコード行を配置すると、無限ループが発生しなくなりました。しかし、それでも DB には何も保存されません。

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");
        //this does not cause infinite loop but does not work either
        var dp = new dataProcessor("agendaController.php");
        dp.init(scheduler);
      }
      }, 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.init($element[0], new Date(), "month");
      scheduler.load("agendaController.php", "json");

      //This gave infinite loop
      //var dp = new dataProcessor("agendaController.php");
      //dp.init(scheduler);
    }
  }
});

これは私のコントローラコードです:

include('connections.php');
include('/db-connector/scheduler_connector.php');    

$scheduler = new JSONSchedulerConnector($conn);
$scheduler->render_table("events","id","start_date,end_date,text");

コンソールに表示されるエラーは次のとおりです。

RangeError: Object.dataProcessor.init [init_original として] で最大呼び出しスタック サイズを超えました

イベントをデータベースに保存するのを手伝ってくれる人はいますか? ありがとう!

4

1 に答える 1

1

エラーが見つかりました。これは、connector.js を追加したためで、dhtmlxscheduler.js に既に含まれています。このインクルードを削除すると、機能し始めました。

于 2014-01-13T00:24:51.837 に答える