Javascript 在renderEvent或updateEvent之后,FullCalendar事件会丢失用户数据

Javascript 在renderEvent或updateEvent之后,FullCalendar事件会丢失用户数据,javascript,angularjs,fullcalendar,Javascript,Angularjs,Fullcalendar,我将事件对象加载到fullcalendar中。每个事件都有一个自定义的资源数组字段,显示事件的对象。很好。用户可以单击事件,然后eventClick向我提供带有资源的事件。我打开一个对话框进行编辑。保存对数据库的更改后,我想使用updateEvent更新日历。我用来更新的对象包含完整的资源数组,并且所有对象似乎都更新得很好 问题是:现在当我再次单击同一事件进行编辑时,eventClick返回的事件将resources数组长度设置为0。i、 e.缺少所有资源元素 我想可能我没有使用“原始对象”进行

我将事件对象加载到fullcalendar中。每个事件都有一个自定义的
资源
数组字段,显示事件的对象。很好。用户可以单击事件,然后
eventClick
向我提供带有
资源的事件。我打开一个对话框进行编辑。保存对数据库的更改后,我想使用
updateEvent
更新日历。我用来更新的对象包含完整的
资源
数组,并且所有对象似乎都更新得很好

问题是:现在当我再次单击同一事件进行编辑时,
eventClick
返回的事件将
resources
数组长度设置为0。i、 e.缺少所有
资源
元素

我想可能我没有使用“原始对象”进行更新,所以尝试了
removeEvents
,然后是
renderEvent
,但得到了完全相同的行为

我错过了什么

顺便说一句,使用fullCalendar 1.6。我只需要重新加载日历就可以了,但我不想,因为它会闪烁,意味着不必要的字节会在网络上出现

更新
因此,如果我使用
appointment.resources=angular.copy(appointment.resources)
,那么一切都能正常工作。我不清楚为什么。是不是因为附加的资源来自angular$资源,而当它刷新对以前对象的引用时,指向任何地方?

我认为这可能是一个引用问题

创建fullCalendar事件时,它会将对象包装为新事件。 所以,如果你做了如下事情:

var myEvent = {id: 1, title: "MyTitle", resources:[1,2,3], start:moment()};
$.('#calendar').fullCalendar('renderEvent', myEvent);
它创建另一个对象,具有一些特定属性,如备份、特定方法等。。。您可以通过以下方式访问此对象:

var fcEvent = $.('#calendar').fullCalendar('clientEvents', myEvent.id);
但现在:

fcEvent.resources != myEvent.resources
无论如何,如果没有一段代码,很难准确地知道问题出在哪里。可以创建一个Plunker吗

你可以用我的