容器策略
ContainerStrategy 是由 @abp/ng.core 包提供的抽象类。有两个容器策略继承自该类:ClearContainerStrategy 和 InsertIntoContainerStrategy。这两个策略实现了相同的方法和属性,帮助您定义容器的准备方式以及内容投射的位置。
API
ClearContainerStrategy 是继承自 ContainerStrategy 的类。它允许您在投射内容之前清空容器。
构造函数
constructor(
public containerRef: ViewContainerRef,
private index?: number, // 仅在 InsertIntoContainerStrategy 中生效
)
containerRef是投射内容时将使用的ViewContainerRef。
getIndex
getIndex(): number
该方法返回经过 0 和 containerRef 的 length 限制后的给定索引。对于没有索引的策略,返回 0。
prepare
prepare(): void
该方法在内容投射之前调用。根据所使用的容器策略,它会清空容器或不执行任何操作(noop)。
ClearContainerStrategy
ClearContainerStrategy 是继承自 ContainerStrategy 的类。它允许您在投射内容之前清空容器。
InsertIntoContainerStrategy
InsertIntoContainerStrategy 是继承自 ContainerStrategy 的类。它允许您在容器的特定节点索引处投射内容。
预定义容器策略
预定义的容器策略可通过 CONTAINER_STRATEGY 常量访问。
Clear
CONTAINER_STRATEGY.Clear(containerRef: ViewContainerRef)
在内容投射之前清空给定容器。
Append
CONTAINER_STRATEGY.Append(containerRef: ViewContainerRef)
投射的内容将附加到容器末尾。
Prepend
CONTAINER_STRATEGY.Prepend(containerRef: ViewContainerRef)
投射的内容将插入到容器开头。
Insert
CONTAINER_STRATEGY.Insert(
containerRef: ViewContainerRef,
index: number,
)
投射的内容将插入到容器的指定索引处(索引值受 0 和 containerRef 的 length 限制)。
抠丁客


