ContextStrategy(上下文策略)
ContextStrategy是由@abp/ng.core包提供的抽象类。目前有三种继承该类的上下文策略:ComponentContextStrategy、TemplateContextStrategy和NoContextStrategy。这些策略实现了相同的方法和属性,帮助您定义投影内容如何获取上下文。
ComponentContextStrategy(组件上下文策略)
ComponentContextStrategy继承自ContextStrategy,允许您向投影组件传递上下文。
构造函数
constructor(public context: Partial<InferredInstanceOf<T>>) {}
T表示组件类型,即Type<C>InferredInstanceOf是由@abp/ng.core包提供的工具类型,用于推断组件结构context将被映射到投影组件的属性
setContext方法
setContext(componentRef: ComponentRef<InferredInstanceOf<T>>): Partial<InferredInstanceOf<T>>
该方法将上下文的每个属性映射到同名组件属性,并触发变更检测。返回映射后的上下文。
TemplateContextStrategy(模板上下文策略)
TemplateContextStrategy继承自ContextStrategy,允许您向投影模板传递上下文。
构造函数
constructor(public context: Partial<InferredContextOf<T>>) {}
T表示模板上下文类型,即TemplateRef<C>InferredContextOf是由@abp/ng.core包提供的工具类型,用于推断上下文结构context将被映射到投影模板的属性
setContext方法
setContext(): Partial<InferredContextOf<T>>
该方法不执行任何操作,仅返回上下文,因为模板上下文不会进行映射,而是作为参数传递给createEmbeddedView方法。
NoContextStrategy(无上下文策略)
NoContextStrategy继承自ContextStrategy,允许您跳过向投影内容传递任何上下文。
构造函数
constructor()
与其他上下文策略不同,NoContextStrategy构造函数不接收任何参数。
setContext方法
setContext(): undefined
由于不存在上下文,此方法不接收参数并返回undefined。
预定义上下文策略
预定义的上下文策略可通过CONTEXT_STRATEGY常量访问。
None(无上下文)
CONTEXT_STRATEGY.None()
此策略不会向投影内容传递任何上下文。
Component(组件上下文)
CONTEXT_STRATEGY.Component(context: Partial<InferredContextOf<T>>)
此策略帮助您将指定上下文传递给投影组件。
Template(模板上下文)
CONTEXT_STRATEGY.Template(context: Partial<InferredContextOf<T>>)
此策略帮助您将指定上下文传递给投影模板。
抠丁客


