Kendo调度程序,新创建的对象ID未保存在数据源中

时间:2015-05-05 04:30:34

标签: angularjs kendo-ui kendo-scheduler

我尝试在API上创建一个项目并使用新的' ScheduleID'返回一个值。当我执行跟踪时,API会在新创建的对象中返回一个新的ScheduleID,但是从不保存ScheduleID在dataSource中。谁知道为什么?

vm.schedulerOptions = {
  date: new Date(classStartDate.getUTCFullYear(), classStartDate.getUTCMonth(), classStartDate.getUTCDate(), 0, 0, 0),
  height: 600,
  views: [
    "day",
    {type: "week", selected: true},
  ],

  dataSource: {
    transport: {
      read: function (options) {
        if ($stateParams.classId) {
          scheduleDf.getScheduleByClassId($stateParams.classId).success(function (result) {
            options.success(result);
          }).error(function (err) {
            options.error(err);
          })
        } else if ($stateParams.sectionId) {
          scheduleDf.getScheduleBySectionId($stateParams.sectionId).success(function (result) {
            options.success(result);
          }).error(function (err) {
            options.error(err);
          })
        }
      },
      create: function (options) {
        options.data.ClassId = classInfor.data[0].ClassID;
        options.data.AtLocationId = vm.locationCb.dataItem().LocationID;
        options.data.ConfirmationNumber = vm.ConfirmationNumber;
        scheduleDf.createSchedule(options.data).success(function (result) {
          //vm.grid.dataSource.read();
          options.success(result);
        }).error(function (err) {
          options.error(err);
        })
      },
      update: function (options) {
        if (!fromMovingBar) {
          options.data.AtLocationId = vm.locationCb.dataItem().LocationID;
          fromMovingBar = false;
        }
        scheduleDf.updateSchedule(options.data).success(function (result) {
          vm.grid.dataSource.read();
          options.success(result);
        }).error(function (err) {
          options.error(err);
        })
      },
      destroy: function (options) {
        scheduleDf.deleteSchedule(options.data.ScheduleID).success(function (result) {
          vm.grid.dataSource.read();
          options.success();
        }).error(function (err) {
          options.error(err);
        })
      }
    },
    schema: {

      model: {
        id: "ScheduleID",

        fields: {

          start: {type: "date", from: "FromTime"},
          end: {type: "date", from: "ToTime"}
        }
      }
    }
  },
  editable: {
    template: '<div ng-include="' + "'/schedule/_schedule_editor.html'" + '"></div>',
    create: false
  },
  edit: function (e) {
    e.container.data("kendoWindow").center();
    e.container.find(".k-edit-form-container").width("auto");
    e.container.data("kendoWindow").wrapper.css({width: 700});
  },
  moveEnd: function (e) {
    fromMovingBar = true;
  },
  resizeEnd: function (e) {
    fromMovingBar = true;
  },
  resources: [{
    field: 'SessionTypeID',
    dataColorField: 'ColorCode',
    dataValueField: 'SessionTypeID',
    dataTextField: 'SessionTypeName',
    dataSource: sessionTypes.data
  }]
};

1 个答案:

答案 0 :(得分:0)

当前行为的原因是服务器的响应格式与&#34; read&#34;相同。请求。您应该尝试在数组中插入记录。有关详细信息,请查看此help article.

另外我注意到Scheduler没有设置时区选项。请注意,强烈建议您设置时区选项 - 有关详细信息,请查看 new Timezones help article