非破壞性地將多個
new CompositeEntityCollection(collections, owner)
EntityCollection
實例組合成一個集合。如果在多個集合中存在具有相同ID的實體,則該實體將以非破壞性方式合并到單個新實體實例中。如果一個實體在多個集合中具有相同的屬性,則使用它所屬列表的最后一個集合中該實體的屬性。CompositeEntityCollection幾乎可以在使用EntityCollection的任何地方使用。
Parameters:
Members
(readonly) collectionChanged : Event
獲取在從集合中添加或刪除實體時觸發的事件。生成的事件是a
EntityCollection.collectionChangedEventCallback
。
(readonly) id : String
獲取此集合的全局唯一標識符。
(readonly) owner : (DataSource|CompositeEntityCollection)
獲取此復合實體集合的所有者,即創建它的數據源或復合實體集合。
(readonly) values : Array.<Entity>
獲取集合中實體實例的數組。不應直接修改此數組。
Methods
addCollection(collection, index)
將集合添加到組合中。
Parameters:
index
(Number)
要添加集合的索引。如果省略,集合將添加到所有現有集合的頂部。
Throws
-
DeveloperError : 如果提供索引,則索引必須大于或等于零且小于或等于集合數。
計算集合中實體的最大可用性。如果集合包含無限可用數據和非無限數據的組合,則它將僅返回與非無限數據相關的間隔。如果所有數據都是無限的,則返回無限間隔。
如果提供的實體在此集合中,則返回true,否則返回false。
Parameters:
檢查組合是否包含給定集合。
Parameters:
獲取具有指定ID的實體。
Parameters:
id
(String)
要檢索的實體的ID。
從組合中按索引獲取集合。
Parameters:
index
(Number)
要檢索的索引。
獲取此組合中的集合數。
確定組合中給定集合的索引。
Parameters:
將集合降低到組合中的一個位置。
Parameters:
Throws
-
DeveloperError : 集合不在此組合中。
將集合降低到組合的底部。
Parameters:
Throws
-
DeveloperError : 集合不在此組合中。
在組合中向上提升一個集合。
Parameters:
Throws
-
DeveloperError : 集合不在此組合中。
將集合提升到組合的頂部。
Parameters:
Throws
-
DeveloperError : 集合不在此組合中。
刪除此組合中的所有集合。
從該組合中刪除集合(如果存在)。
Parameters:
添加或刪除項目時立即恢復引發
EntityCollection#collectionChanged
事件。當事件被掛起時所做的任何修改都將在調用此函數時作為單個事件觸發。此函數還確保在事件也恢復時重新計算集合。此函數是引用計數的,只要對EntityCollection#resumeEvents
有相應的調用,就可以安全地多次調用。
Throws
-
DeveloperError : Suspendevents之前不能調用ResumeEvents。
防止
EntityCollection#collectionChanged
事件被引發,直到對EntityCollection#resumeEvents
進行相應的調用,此時將引發涵蓋所有掛起操作的單個事件。這樣可以有效地添加和刪除許多項目。當事件被掛起時,對集合的重新排序也將被掛起,因為這可能是一個代價高昂的操作。只要對EntityCollection#resumeEvents
有相應的調用,就可以安全地多次調用此函數。