全日历事件限制和资源



我正在尝试在jsbin中进行此演示,以使用调度程序进行一些事件,并限制将其中一些事件移动到特定资源。

$('#calendar').fullCalendar({
    schedulerLicenseKey: "CC-Attribution-NonCommercial-NoDerivatives",
    // put your options and callbacks here
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,basicWeek,agendaDay'
    },
    defaultView: 'agendaDay',
    defaultDate: '2017-05-09',
    navLinks: true, // can click day/week names to navigate views
    editable: true,
    nowIndicator: true,
    allDaySlot: false,
    fixedWeekCount: false,
    eventLimit: true, // allow "more" link when too many events
    slotLabelFormat: "HH:mm",
    slotLabelInterval: "00:60:00",
    events: [
        {
            title: 'Long Event',
            start: '2017-05-09T16:00:00',
            end: '2017-05-09T17:00:00',
            resourceId: 'b',
            constraint: {
                resourceIds: ['c', 'd']
            }
        },
        {
            id: 999,
            title: 'Test Event',
            start: '2017-05-09T16:00:00',
            end: '2017-05-09T18:00:00',
            resourceId: 'a',
            constraint: {
                resourceIds: ['b', 'c', 'd']
            }
        }
    ],
    resources: [
        {id: 'a', title: 'Auditorium A'},
        {id: 'b', title: 'Auditorium B'},
        {id: 'c', title: 'Auditorium C'},
        {id: 'd', title: 'Auditorium D'}
    ]
})

现在,如果您按照此处的说明进行操作,您会注意到在 resourcesId 中指定了您希望事件不去的 ID。但是在 jsbin 中,您可以看到相反的情况正在发生。

此外,如果您打开月或周视图,则无法从一天拖放到另一天。由于事件约束而限制您。

我做错了什么还是出了问题?


暂时解决了此解决方案的问题,但我认为以上是一个错误。你可以在这里试试我的解决方案。

我所做的是在事件的自定义字段中传递约束,并检查丢弃是否正确。

现在,如果您按照此处的说明进行操作,您会注意到里面 资源 ID 您指定不希望事件使用的 ID 去。

不,这篇文章说的恰恰相反:

可以应用其他属性来强制事件保留在 特定资源

(我添加了粗体。

这意味着您可以提供事件可以拖动到的资源列表。因此,不能将其拖动到约束属性中未命名的任何资源。

根据您发布的链接中给出的示例:

constraint: {
  resourceIds: [ 'a', 'b', 'c' ] // constrain dragging to these
}

仅允许将具有此属性的事件拖动到资源"a"、"b"和"c"上。

我认为您误解了文档。

相关内容

  • 没有找到相关文章

最新更新