0

我面临一个关于数据引用的问题。我有一个对象具有一个键值对数据,即

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>
4

1 回答 1

0

两者ArrayCollectionXMLListCollection扩展ListCollectionView

顾名思义,它ListCollectionView是一组数据的“视图”,这本质上意味着它可以以不同的方式呈现数据,例如通过对其进行排序、过滤等。但它不会触及底层数据,这就是为什么你的原版xml永远不变。

ListCollectionView有一个toArray函数,它会将过滤后的数据作为新的 Array 实例返回。

于 2013-06-07T10:05:36.950 回答