Сохранять, редактировать, удалять и отменять события в AlloyUI Scheduler

javascript calendar yui alloy-ui

1861 просмотра

1 ответ

Как я могу прослушивать события Save, Edit, Delete и Cancel из планировщика AlloyUI? Мне нужно сохранить значение в нашей базе данных для будущего использования, но я не вижу никакой документации для этого.

Текущий код, который у меня есть, это:

YUI().use('aui-scheduler', function(Y) {
    var items = [
        {
            content: 'Wake Early'
        },
        {
            content: 'Exercise'
        },
    ];
    var schedulerViews = [
        new Y.SchedulerWeekView(),
        new Y.SchedulerDayView(),
        new Y.SchedulerMonthView(),
        new Y.SchedulerAgendaView()
    ];
   var eventRecorder = new Y.SchedulerEventRecorder();
    new Y.Scheduler({
        boundingBox: '#scheduler',
        items: items,
        views: schedulerViews,
        activeView: schedulerViews[2],
        eventRecorder: eventRecorder,
         firstDayOfWeek: 1,
        // activeView: weekView,
        // views: [dayView, weekView, monthView, agendaView]
    }).render();

    Y.Do.after(function() { 
      this.on("save",function(data){
       alert('Event:'+this.isNew()+' --- '+this.getContentNode().val());
      });   
    }, eventRecorder, 'showPopover');

});

Мне пока не везет, кто-нибудь может мне помочь? Я пробовал этот урок, а также этот, но они не помогли.

Автор: Daksh Источник Размещён: 08.11.2019 11:17

Ответы (1)


7 плюса

Решение

Вы должны использовать незарегистрированный save, edit, deleteи cancel* событие SchedulerEventRecorder. Например:

var eventRecorder = new Y.SchedulerEventRecorder({
    on: {
        save: function(event) {
            alert('Save Event:' + this.isNew() + ' --- ' + this.getContentNode().val());
        },
        edit: function(event) {
            alert('Edit Event:' + this.isNew() + ' --- ' + this.getContentNode().val());
        },
        delete: function(event) {
            alert('Delete Event:' + this.isNew() + ' --- ' + this.getContentNode().val());
// Note: The cancel event seems to be buggy and occurs at the wrong times, so I commented it out.
//      },
//      cancel: function(event) {
//          alert('Cancel Event:' + this.isNew() + ' --- ' + this.getContentNode().val());
        }
    }
});

Вот работающий пример с предоставленным вами кодом:

YUI().use('aui-scheduler', function(Y) {
  var items = [{
    content: 'Wake Early'
  }, {
    content: 'Exercise'
  }, ];
  var schedulerViews = [
    new Y.SchedulerWeekView(),
    new Y.SchedulerDayView(),
    new Y.SchedulerMonthView(),
    new Y.SchedulerAgendaView()
  ];
  var eventRecorder = new Y.SchedulerEventRecorder({
    on: {
      save: function(event) {
        alert('Save Event:' + this.isNew() + ' --- ' + this.getContentNode().val());
      },
      edit: function(event) {
        alert('Edit Event:' + this.isNew() + ' --- ' + this.getContentNode().val());
      },
      delete: function(event) {
        alert('Delete Event:' + this.isNew() + ' --- ' + this.getContentNode().val());
// Note: The cancel event seems to be buggy and occurs at the wrong times, so I commented it out.
//      },
//      cancel: function(event) {
//        alert('Cancel Event:' + this.isNew() + ' --- ' + this.getContentNode().val());
      }
    }
  });
  new Y.Scheduler({
    boundingBox: '#scheduler',
    items: items,
    views: schedulerViews,
    activeView: schedulerViews[2],
    eventRecorder: eventRecorder,
    firstDayOfWeek: 1,
    // activeView: weekView,
    // views: [dayView, weekView, monthView, agendaView]
  }).render();

});
<script src="https://cdn.rawgit.com/stiemannkj1/701826667a70997013605edcd37e92a6/raw/469fe1ae297e72a5a80eb9015003b7b04eac735e/alloy-ui-3.0.1_aui_aui-min.js"></script>
<link href="https://cdn.rawgit.com/stiemannkj1/90be22de7f48c729b443af14796d91d3/raw/a9f35ceedfac7fc0559b121bed105eaf80f10bf2/aui-css_css_bootstrap.min.css" rel="stylesheet"></link>
<div id="myScheduler"></div>

* cancelСобытие кажется немного ошибочным и происходит в неподходящее время, поэтому я прокомментировал его. Кажется, это происходит всякий раз, когда происходит любое другое событие.

Автор: stiemannkj1 Размещён: 25.08.2016 07:16
Вопросы из категории :
32x32