mirror of https://github.com/abpframework/abp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.5 KiB
2.5 KiB
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
在这里引用组件类型, 例.Type<C>
.InferredInstanceOf
是 @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>>)
该策略将帮助你将给定的上下文传递到投影模板.