Smalltalk Seaside jQuery-通过拖放对列表排序并通过Ajax将其发送回会导致OrderedCollection变成数组吗?

Smalltalk Seaside jQuery-通过拖放对列表排序并通过Ajax将其发送回会导致OrderedCollection变成数组吗?,smalltalk,pharo,Smalltalk,Pharo,下面的代码来自海边手册: 我的实例变量_itemList最初是OrderedCollection。只要我在页面中移动行,整个列表就会以新的顺序发送回来。但是,这次setItemList:接收一个数组 这有什么意义吗?我遗漏了什么吗?所以问题是#回调:乘客:使用#子字符串:从AJAX回调中获取元素ID,然后对该集合执行#collect:来确定Smalltalk对象。由于#子字符串:返回一个数组,因此#collect:也将返回一个数组 解决方案:在存储阵列之前,先将#asOrderedCollect

下面的代码来自海边手册:

我的实例变量_itemList最初是OrderedCollection。只要我在页面中移动行,整个列表就会以新的顺序发送回来。但是,这次setItemList:接收一个数组


这有什么意义吗?我遗漏了什么吗?

所以问题是
#回调:乘客:
使用
#子字符串:
从AJAX回调中获取元素ID,然后对该集合执行
#collect:
来确定Smalltalk对象。由于
#子字符串:
返回一个数组,因此
#collect:
也将返回一个数组

解决方案:在存储阵列之前,先将
#asOrderedCollection
发送到阵列:

(html jQuery ajax
  callback: [ :items | modelRole getModelRolePlayer setItemList: items asOrderedCollection ]
  passengers: (html jQuery this find: 'li'));

当您说有两个
TodoItemList
实例时,我猜其中一个在
Singleton
类变量中,对吗?你在哪里找到另一个?我觉得不错。自发的阶级变革是不太可能的。此外,Pharo对睡眠/醒来没有反应,因此我几乎不认为问题存在。您是否检查了
#itemList
#itemList:
的发件人?有什么可以解释这种变化的吗?是的,您在哪里看到第二个实例(提示:
TodoItemList allInstances explore
)?很好,它可以工作:D示例不完整。。。在我再次写完这本书的路上。
(html jQuery ajax
  callback: [ :items | modelRole getModelRolePlayer setItemList: items asOrderedCollection ]
  passengers: (html jQuery this find: 'li'));