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>>) {}
Trefers to component type here, i.e.Type<C>.InferredInstanceOfis a utility type exposed by @abp/ng.core package. It infers component shape.contextwill 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>>) {}
Trefers to template context type here, i.e.TemplateRef<C>.InferredContextOfis a utility type exposed by @abp/ng.core package. It infers context shape.contextwill 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.