我有两个不同的Spark Lists
,有两个不同的ItemRenderers
,其中一个有dragEnabled="true"
,另一个有dropEnabled="true"
,这样每当我拖动从一个中删除另一个,删除的对象的副本被创建并插入到第二个List的dataProvider中。
<s:List id="source"
itemRenderer="componentsRenderers.SourceItemRenderer"
dragEnabled="true"
dataProvider="{elements}"/>
<s:List id="destination"
itemRenderer="componentsRenderers.DestinationItemRenderer"
dragEnabled="false"
dropEnabled="true"
change="destinationChanged(event)"/>
事件处理程序destinationChanged()
是一种方法,它解析最近添加的对象,将其删除,并创建一个新的对象,其中包含必须呈现的UIComponent
。
最重要的是,除了一件事:我加载应用程序后,UIComponent
中要删除的第一个项目的destination
永远不会得到渲染器。完整的对象就在那里,与它相关的所有其他功能都可以工作,但组件不会被渲染。如果我删除了该对象,再次将List清空,然后重新插入,它就会被渲染!
此外,在插入'invisible'后,所有以下插入都可以正常工作。
想法? 谢谢!
<小时/> 更新:我刚发现itemRendererDestinationItemRenderer
会被渲染两次,以便删除第一个元素。