About the uiCollection class
What is uiCollection
The uiCollection
library class should be used as a base class by any components that contain a collection of child UI components. uiCollection
inherits from the uiElement class.
uiCollection
source code is <UI_Module_dir>/view/base/web/js/lib/core/collection.js
, in the Magento Open Source github repository: app/code/Magento/Ui/view/base/web/js/lib/core/collection.js.
Commonly used uiCollection
methods
The uiCollection
class implements the following methods:
-
The
initElement()
method allows you to add custom functionality to a child UI component or to the current UI component at the moment when the child UI component initializes. TheinitElement()
method gets the child UI component instance as a parameter.Example:
- The
destroy()
method removes the following for the child components and itself:- link to the component in
uiRegistry
- link to the component in the parent component
- event listeners
Example:
- link to the component in
-
The
getChild()
method returns an element from the collection of child UI components.Example:
where childIndex
is the value of the child element’s index
property.
Commonly used uiCollection
properties
-
elems
is the observable property that contains the collection of child UI components.Example:
childDefaults
can be used to set the children defaults: properties fromchildDefaults
are set into child elements’defaults
property.
uiCollection template
The uiCollection
template is <UI_Module_dir>/view/base/web/templates/collection.html
, in the Magento Open Source github repository: app/code/Magento/Ui/view/base/web/templates/collection.html
.
This template performs only one task: renders child templates if they exist.
It looks like following:
Here elems
is the collection of the child elements of uiCollection
. As far as elems
is the observable property, the templates of the components added to elems
in the runtime, are also rendered.