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