我面临一个有关数据引用的问题。我有一个对象有一个键值对数据,即
var _dataObj:Object;
_dataObj[‘value’] = xml;
我从对象中检索数据,并在<PEM>
标记内的<COMP>
上应用过滤器。我从我的xml中获取了xmlList(xml的所有子节点)并添加到xmlListCollection中。
var _listColl:XMLListCollection = new XMLListCollection(xml.children);
我在集合中应用了一个过滤器,
IsActive = ‘Y’
过滤后我的集合只包含两个记录,这是正确的。我的期望是它也应该反映在我的_dataObject
中。但它并没有反映出来。我不知道为什么它会得到尊重而不会将过滤后的数据显示到_dataObject
。
XML结构:
<comp recordId="1150">
<pem recordId="1150">
<ID>3125465</ID>
<IsActive>Y</IsActive>
</pem>
<pem recordId="1151">
<ID>3125466</ID>
<IsActive>N</IsActive>
</pem>
<pem recordId="1152">
<ID>3125467</ID>
<IsActive>Y</IsActive>
</pem>
</comp>
答案 0 :(得分:0)
ArrayCollection
和XMLListCollection
都延伸ListCollectionView。
顾名思义,ListCollectionView
是一组数据的“视图”,这实际上意味着它可以以不同的方式呈现数据,例如通过对它进行排序,过滤等等,但它保持底层数据不变,这就是原始xml
永远不会改变的原因。
ListCollectionView
具有toArray功能,但会将过滤后的数据作为新的Array实例返回。