BrickContext
Hierarchy
- Context
- BrickContext
Index
Constructors
constructor
Returns BrickContext
Methods
clear
Clear the current context: detach and destroys all children context. The context can be reused.
Returns void
createChild
Create and return a new context, child of the current one. Mainly used to run other bricks within the current one (e.g.: the iterator of the brick For Each).
Parameters
optionaldebugName: string
a name to give to the context for debugging purpose.
Returns BrickContext
destroy
Destroy the current context. It destroys all children context attached to this one and clear their values. The context cannot be reused after calling this function.
Returns void
get
Return the current value of the specified property. If there is currently no value, return null.
Type parameters
- T
Parameters
key: string | Property<T>
the property or key string
optionalglobal: boolean
whether the method checks parent contexts (Default = false)
Returns T
the current value
getClosest
Return the closest parent of a given type
Parameters
selector: { modelTag: InstanceOrTag }
the context selector
Returns BrickContext
getOtherContext
Return the context with the specified id if accessible (in the hierarchy) from this context. Otherwise, return null.
Parameters
id: string
the context id we want to retrieve
Returns BrickContext
getParent
Return the parent context if it exists.
Returns BrickContext
has
Returns a boolean indicating whether a property has a value or not.
Type parameters
- T
Parameters
key: string | Property<T>
the property or key string
optionalglobal: boolean
whether the method checks parent contexts (Default = false)
Returns boolean
whether
property
has a value or not
isDestroyed
Whether the context is destroyed.
Returns boolean
observe
Return an observable to subscribe to value updates of the specified property. If
waitForValue
is set to FALSE (TRUE by default), the first value received by the observable is null if there is no value at subscription time. Ifglobal
is set to TRUE (FALSE by default), it observes values coming from other contexts accessible from the current one.Type parameters
- T
Parameters
key: string | Property<T>
the property or key string
optionalwaitForValue: boolean
whether the observable should wait for a first value to get a value. (Default = true)
optionalglobal: boolean
whether to listen to a value coming from other contexts. (Default = false)
Returns Observable<T>
the observable
offClear
Remove a previously registered callback with Context.onClear method using its id.
Parameters
id: string
the id of the callback to unregister
Returns void
offDestroy
Remove a previously registered callback with Context.onDestroy method using its id.
Parameters
callbackId: string
the id of the callback to unregister
Returns boolean
onClear
Register a callback to execute every time the context is cleared. This happens every time the brick is refreshed with new inputs and during the brick destruction. Return the callback id.
Parameters
callback: () => void
the callback function
Returns string
the callback id
onContext
Listen to the creation of the context with the specified id. Executes the callback when that context becomes accessible by this current context. Return a function to unregister the listener.
Parameters
id: string
the context id, which corresponds to the tag of the brick to be retrieved.
callback: (context: BrickContext) => void
the function to execute when the specified brick context is available
Returns () => void
Listen to the creation of the context with the specified id. Executes the callback when that context becomes accessible by this current context. Return a function to unregister the listener.
Returns void
onDestroy
Register a callback to execute when the context is destroyed. Return the callback id.
Parameters
callback: () => void
the callback function
Returns string
the callback id
remove
Clear the value of the specified property and propagate that event.
Type parameters
- T
Parameters
key: string | Property<T>
the property or key string
Returns boolean
repeat
Subscribe to the specified observable and set its values to the context with the provided key.
Type parameters
- T
Parameters
key: string | Property<T>
the key used to set the values coming from the observable
observable: Observable<T>
the observable providing values
Returns BrickContext
this context
runner
Run a runnable property and returns its context.
Type parameters
- T
Parameters
Returns BrickContext
the child context or null if the runner was not found
set
Set the specified property value and propagate the update to anyone observing it.
Type parameters
- T
Parameters
key: string | Property<T>
the property or key string
value: T
the new value to set
Returns BrickContext
this
setParentElement
Set the parent element for visual brick to be rendered.
Parameters
parent: Element
the parent container
Returns BrickContext
this
throw
Throw the specified error to this context. The error will be propagated until it finds an error handler.
Parameters
error: string | ErrorFlow | Error
the error to throw and propagate in the contexts hierarchy
Returns BrickContext
this context
trigger
Trigger the specified event and propagate the update to anyone observing it.
Type parameters
- T
Parameters
key: string | Property<T>
the event or key event
Returns BrickContext
this
waitFor
Wait for the property to get a new value, wrapped in a promise. The promise is rejected if no value is set to the specified property before the destruction of this BrickContext.
Type parameters
- T
Parameters
key: string | Property<T>
the property
optionalglobal: boolean
whether the method checks parent contexts (Default = false)
Returns Promise<T>
a promise of the next value of property
Softcoded application context
Contexts have parents and children, they represent the lifecycle of bricks. They contain callbacks executed at specific time of the brick lifespan.
Each time a brick is updated with new inputs, Context.clear is called, executing all callbacks registered with Context.onClear.
When a brick is destroyed, Context.destroy is called, executing all callbacks registered with Context.onClear and Context.onDestroy