Javascript 向事件源动态添加事件

Javascript 向事件源动态添加事件,javascript,fullcalendar,Javascript,Fullcalendar,谢谢你的项目!真不错 我目前正在尝试将完整日历从v1升级到v2。 由于升级到v2页面文档,我修复了所有主要问题 我现在陷入了一个概念性的问题 我的日历按用户显示事件。 每个用户都由一个事件源表示。 事件源基本上是一系列事件。 当我为用户添加事件时,我希望它以动态方式添加到用户的事件源中。通过这种方式,我总是在源和日历上显示的事件之间进行完全匹配 我成功地在v1中实现了这个用例,如下所示: private void addEventToSource(Event event) { // get

谢谢你的项目!真不错

我目前正在尝试将完整日历从v1升级到v2。 由于升级到v2页面文档,我修复了所有主要问题

我现在陷入了一个概念性的问题

我的日历按用户显示事件。 每个用户都由一个事件源表示。 事件源基本上是一系列事件。 当我为用户添加事件时,我希望它以动态方式添加到用户的事件源中。通过这种方式,我总是在源和日历上显示的事件之间进行完全匹配

我成功地在v1中实现了这个用例,如下所示:

private void addEventToSource(Event event) {
  // get user 
  String userId = event.getUserId();
  // get source for user (sources is a map user -> JsonObject)
  JSONObject source = sources.get(userId);
  // get the list of events
  JSONArray array = (JSONArray)source.get("events");
  // add event at the end of the list
  array.set(array.size(), createJsonEvent(event));
  // refetch events from all sources
  refetchEvents();
}

这段代码工作得很好,因为用户的源代码以前是由full calendar js知道的:

private static native void addSource(String calendarId, JavaScriptObject source) /*-{
  $wnd.jQuery("#"+calendarId).fullCalendar('addEventSource', source);
}-*/)

在内部,我的所有更新都是通过JSON操作在源对象上完成的。当我重新提取事件时,所有用户的源都是最新的,并在日历上显示良好

但是,此代码在v2上不起作用。似乎我发送给完整日历的源与内部用于显示事件的源不同。源上的所有我的更新都不会应用于内部数据,因此在日历上不可见

有没有办法获取事件的内部来源? 有没有实现这样一个用例的想法?也许我错过了什么。。。 提前谢谢


Julien

您可以查看以下内容:

$('#calendar').fullCalendar('removeEventSource', source)
$('#calendar').fullCalendar('refetchEvents')
$('#calendar').fullCalendar('addEventSource', newSource)
$('#calendar').fullCalendar('refetchEvents');
您甚至可以删除所有事件,并根据需要将其添加回。这取决于你在做什么


顺便说一句,朱利安-你最有可能通过发布Java而不是Javascript来吓跑响应者。发布更多javascript代码以获得更精确的答案。

再次向大家问好!这里有一个JSFIDLE来指出我遇到的问题:场景:-单击添加事件源:将一个事件添加到日历中的源-单击将事件添加到源:将一个事件添加到列表中-单击refetch:不做任何事情。但是,我们正在等待日历打印出第二个事件-再次单击以添加事件源:将显示与第一个事件对应的两个事件,另一个事件对应于源上添加的最后一个事件。有什么想法吗?