EntityCollection

每个实体具有唯一ID的Entity实例的可观察集合。
new EntityCollection(owner)
Parameters:
owner ((DataSource | CompositeEntityCollection)) 创建此集合的数据源(或复合实体集合)。

Members

(readonly) collectionChanged : Event

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

(readonly) id : String

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

(readonly) owner : (DataSource|CompositeEntityCollection)

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

show : Boolean

获取是否应显示此实体集合。如果为真,则仅当每个实体自身的Show属性也为真时才显示该实体。

(readonly) values : Array.<Entity>

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

Methods

(static) collectionChangedEventCallback(collection, added, removed, changed)
EntityCollection#collectionChanged生成的事件的签名。
Parameters:
collection (EntityCollection) 触发事件的集合。
added (Array.<Entity>) 已添加到集合中的Entity实例的数组。
removed (Array.<Entity>) 已从集合中删除的Entity实例的数组。
changed (Array.<Entity>) 已修改的Entity实例数组。
add(entity) → {Entity}
向集合中添加实体。
Parameters:
entity (Entity) 要添加的实体。
Throws
computeAvailability() → {TimeInterval}
计算集合中实体的最大可用性。如果集合包含无限可用数据和非无限数据的组合,则它将仅返回与非无限数据相关的间隔。如果所有数据都是无限的,则返回无限间隔。
contains(entity) → {Boolean}
如果提供的实体在此集合中,则返回true,否则返回false。
Parameters:
entity (Entity) 实体。
getById(id) → {Entity}
获取具有指定ID的实体。
Parameters:
id (String) 要检索的实体的ID。
getOrCreateEntity(id) → {Entity}
获取具有指定ID的实体,或者创建该实体,如果该实体不存在,则将其添加到集合中。
Parameters:
id (String) 要检索或创建的实体的ID。
remove(entity) → {Boolean}
从集合中移除实体。
Parameters:
entity (Entity) 要删除的实体。
removeAll()
从集合中移除所有实体。
removeById(id) → {Boolean}
从集合中删除具有提供的ID的实体。
Parameters:
id (String) 要删除的实体的ID。
resumeEvents()
添加或删除项目时立即恢复引发EntityCollection#collectionChanged事件。当事件被挂起时所做的任何修改都将在调用此函数时作为单个事件触发。此函数是引用计数的,只要对EntityCollection#resumeEvents有相应的调用,就可以安全地多次调用。
Throws
suspendEvents()
防止EntityCollection#collectionChanged事件被引发,直到对EntityCollection#resumeEvents进行相应的调用,此时将引发涵盖所有挂起操作的单个事件。这样可以有效地添加和删除许多项目。只要对EntityCollection#resumeEvents有相应的调用,就可以安全地多次调用此函数。