ContextStrategy
ContextStrategy
is an abstract class exposed by @abp/ng.core package. There are three context strategies extending it: ComponentContextStrategy
, TemplateContextStrategy
, and NoContextStrategy
. Implementing the same methods and properties, all of these strategies help you define how projected content will get their context.
ComponentContextStrategy
ComponentContextStrategy
is a class that extends ContextStrategy
. It lets you pass context to a projected component.
constructor
constructor(public context: Partial<InferredInstanceOf<T>>) {}
T
refers to component type here, i.e.Type<C>
.InferredInstanceOf
is a utility type exposed by @abp/ng.core package. It infers component shape.context
will be mapped to properties of the projected component.
setContext
setContext(componentRef: ComponentRef<InferredInstanceOf<T>>): Partial<InferredInstanceOf<T>>
This method maps each prop of the context to the component property with the same name and calls change detection. It returns the context after mapping.
TemplateContextStrategy
TemplateContextStrategy
is a class that extends ContextStrategy
. It lets you pass context to a projected template.
constructor
constructor(public context: Partial<InferredContextOf<T>>) {}
T
refers to template context type here, i.e.TemplateRef<C>
.InferredContextOf
is a utility type exposed by @abp/ng.core package. It infers context shape.context
will be mapped to properties of the projected template.
setContext
setContext(): Partial<InferredContextOf<T>>
This method does nothing and only returns the context, because template context is not mapped but passed in as parameter to createEmbeddedView
method.
NoContextStrategy
NoContextStrategy
is a class that extends ContextStrategy
. It lets you skip passing any context to projected content.
constructor
constructor()
Unlike other context strategies, NoContextStrategy
contructor takes no parameters.
setContext
setContext(): undefined
Since there is no context, this method gets no parameters and will return undefined
.
Predefined Context Strategies
Predefined context strategies are accessible via CONTEXT_STRATEGY
constant.
None
CONTEXT_STRATEGY.None()
This strategy will not pass any context to the projected content.
Component
CONTEXT_STRATEGY.Component(context: Partial<InferredContextOf<T>>)
This strategy will help you pass the given context to the projected component.
Template
CONTEXT_STRATEGY.Template(context: Partial<InferredContextOf<T>>)
This strategy will help you pass the given context to the projected template.