CompositeEntityCollection

非破坏性地将多个EntityCollection实例组合成一个集合。如果在多个集合中存在具有相同ID的实体,则该实体将以非破坏性方式合并到单个新实体实例中。如果一个实体在多个集合中具有相同的属性,则使用它所属列表的最后一个集合中该实体的属性。CompositeEntityCollection几乎可以在使用EntityCollection的任何地方使用。
new CompositeEntityCollection(collections, owner)
Parameters:
collections (Array.<EntityCollection>) 要合并的EntityCollection实例的初始列表。
owner ((DataSource | CompositeEntityCollection)) 创建此集合的数据源(或复合实体集合)。

Members

(readonly) collectionChanged : Event

获取在从集合中添加或删除实体时触发的事件。生成的事件是aEntityCollection.collectionChangedEventCallback

(readonly) id : String

获取此集合的全局唯一标识符。

(readonly) owner : (DataSource|CompositeEntityCollection)

获取此复合实体集合的所有者,即创建它的数据源或复合实体集合。

(readonly) values : Array.<Entity>

获取集合中实体实例的数组。不应直接修改此数组。

Methods

addCollection(collection, index)
将集合添加到组合中。
Parameters:
collection (EntityCollection) 要添加的集合。
index (Number) 要添加集合的索引。如果省略,集合将添加到所有现有集合的顶部。
Throws
  • DeveloperError : 如果提供索引,则索引必须大于或等于零且小于或等于集合数。
computeAvailability() → {TimeInterval}
计算集合中实体的最大可用性。如果集合包含无限可用数据和非无限数据的组合,则它将仅返回与非无限数据相关的间隔。如果所有数据都是无限的,则返回无限间隔。
contains(entity) → {Boolean}
如果提供的实体在此集合中,则返回true,否则返回false。
Parameters:
entity (Entity) 实体。
containsCollection(collection) → {Boolean}
检查组合是否包含给定集合。
Parameters:
collection (EntityCollection) 要检查的集合。
getById(id) → {Entity}
获取具有指定ID的实体。
Parameters:
id (String) 要检索的实体的ID。
getCollection(index)
从组合中按索引获取集合。
Parameters:
index (Number) 要检索的索引。
getCollectionsLength()
获取此组合中的集合数。
indexOfCollection(collection) → {Number}
确定组合中给定集合的索引。
Parameters:
collection (EntityCollection) 要查找的索引的集合。
lowerCollection(collection)
将集合降低到组合中的一个位置。
Parameters:
collection (EntityCollection) 要移动的集合。
Throws
lowerCollectionToBottom(collection)
将集合降低到组合的底部。
Parameters:
collection (EntityCollection) 要移动的集合。
Throws
raiseCollection(collection)
在组合中向上提升一个集合。
Parameters:
collection (EntityCollection) 要移动的集合。
Throws
raiseCollectionToTop(collection)
将集合提升到组合的顶部。
Parameters:
collection (EntityCollection) 要移动的集合。
Throws
removeAllCollections()
删除此组合中的所有集合。
removeCollection(collection) → {Boolean}
从该组合中删除集合(如果存在)。
Parameters:
collection (EntityCollection) 要删除的集合。
resumeEvents()
添加或删除项目时立即恢复引发EntityCollection#collectionChanged事件。当事件被挂起时所做的任何修改都将在调用此函数时作为单个事件触发。此函数还确保在事件也恢复时重新计算集合。此函数是引用计数的,只要对EntityCollection#resumeEvents有相应的调用,就可以安全地多次调用。
Throws
suspendEvents()
防止EntityCollection#collectionChanged事件被引发,直到对EntityCollection#resumeEvents进行相应的调用,此时将引发涵盖所有挂起操作的单个事件。这样可以有效地添加和删除许多项目。当事件被挂起时,对集合的重新排序也将被挂起,因为这可能是一个代价高昂的操作。只要对EntityCollection#resumeEvents有相应的调用,就可以安全地多次调用此函数。