我已经尝试了几个小时来重新创建我在比我的应用程序更简单的环境中遇到的问题,但没有成功,所以希望以下描述就足够了。
我尝试了除(3)之外的相同API调用序列,在我的应用程序之外的脚本中,一切正常(即在(7),model.canRedo为true,而model.redo()具有预期结果)。我唯一的另一个线索是,当我在我的应用程序中执行步骤时,(6)导致Model的serverRevision和serverVersion增加2,而在我的应用程序外的脚本中,撤消导致这些字段增加1
使用Realtime调试器显示组成我的复合op的4个编辑操作,它们插入如下内容:
{ // new CollaborativeMap
'ch': [] // new CollaborativeList
'nch': {} // new CollaborativeMap
'nodetype': 'Outline'
}
到索引2处的现有CollaborativeList。调试器显示4个编辑事件:
{nodetype: "Outline", ch: [], nch: {}} was added at index 2.
nch has changed from null to {}.
ch has changed from null to [].
nodetype has changed from null to Outline.
然后我撤消,调试器(有点令人困惑)只显示这个1编辑事件:
{} was removed at index 2.
我猜是否有编辑事件从地图中删除未显示的值?无论如何,问题是在撤消操作之后,重做堆栈是空的。