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.
abp/docs/zh-Hans/UI/Angular/Container-Strategy.md

88 lines
2.0 KiB

# ContainerStrategy
`ContainerStrategy`@abp/ng.core 包暴露出的抽象类. 有两种扩展容器扩展策略: `ClearContainerStrategy``InsertIntoContainerStrategy`. 它们实现了相同的方法和属性,这两种策略都可以帮助你定义容器的准备方式和内容的投影位置.
## API
`ClearContainerStrategy` 是一个扩展了 `ContainerStrategy` 的类. 它允许你**将内容投影之前清除容器**.
### 构造函数
```js
constructor(
public containerRef: ViewContainerRef,
private index?: number, // works only in InsertIntoContainerStrategy
)
```
- `containerRef` 是在投影内容时使用的 `ViewContainerRef`.
### getIndex
```js
getIndex(): number
```
该方法返回被 `0``containerRef` `length` 限制的给定索引. 对于没有索引的策略,它返回`0`.
### prepare
```js
prepare(): void
```
此方法在内容投影之前调用. 基于使用的容器策略,它要么清除容器,要么什么都不做(空操作).
## ClearContainerStrategy
`ClearContainerStrategy` 是一个扩展了 `ContainerStrategy` 的类. 它允许你**将内容投影之前清除容器**.
## InsertIntoContainerStrategy
`InsertIntoContainerStrategy` 是一个扩展了 `ContainerStrategy` 的类. 它允许你**将内容投影到容器中的特定节点索引上**.
## 预定义的容器策略
可以通过 `CONTAINER_STRATEGY` 常量访问预定义的容器策略.
### Clear
```js
CONTAINER_STRATEGY.Clear(containerRef: ViewContainerRef)
```
在内容投影之前清除给定的容器.
### Append
```js
CONTAINER_STRATEGY.Append(containerRef: ViewContainerRef)
```
将投影内容附加到容器中.
### Prepend
```js
CONTAINER_STRATEGY.Prepend(containerRef: ViewContainerRef)
```
将投影的内容预先写入容器中.
### Insert
```js
CONTAINER_STRATEGY.Insert(
containerRef: ViewContainerRef,
index: number,
)
```
将投影内容按照给定的索引(在`0` 到 `containerRef`的长度之间)插入到容器中.
## 另请参阅
- [ProjectionStrategy](./Projection-Strategy.md)