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.
102 lines
2.3 KiB
102 lines
2.3 KiB
# ContainerStrategy
|
|
|
|
`ContainerStrategy` is an abstract class exposed by @abp/ng.core package. There are two container strategies extending it: `ClearContainerStrategy` and `InsertIntoContainerStrategy`. Implementing the same methods and properties, both of these strategies help you define how your containers will be prepared and where your content will be projected.
|
|
|
|
|
|
|
|
## API
|
|
|
|
`ClearContainerStrategy` is a class that extends `ContainerStrategy`. It lets you **clear a container before projecting content in it**.
|
|
|
|
|
|
### constructor
|
|
|
|
```js
|
|
constructor(
|
|
public containerRef: ViewContainerRef,
|
|
private index?: number, // works only in InsertIntoContainerStrategy
|
|
)
|
|
```
|
|
|
|
- `containerRef` is the `ViewContainerRef` that will be used when projecting the content.
|
|
|
|
|
|
### getIndex
|
|
|
|
```js
|
|
getIndex(): number
|
|
```
|
|
|
|
This method return the given index clamped by `0` and `length` of the `containerRef`. For strategies without an index, it returns `0`.
|
|
|
|
|
|
### prepare
|
|
|
|
```js
|
|
prepare(): void
|
|
```
|
|
|
|
This method is called before content projection. Based on used container strategy, it either clears the container or does nothing (noop).
|
|
|
|
|
|
|
|
## ClearContainerStrategy
|
|
|
|
`ClearContainerStrategy` is a class that extends `ContainerStrategy`. It lets you **clear a container before projecting content in it**.
|
|
|
|
|
|
|
|
## InsertIntoContainerStrategy
|
|
|
|
`InsertIntoContainerStrategy` is a class that extends `ContainerStrategy`. It lets you **project your content at a specific node index in the container**.
|
|
|
|
|
|
|
|
## Predefined Container Strategies
|
|
|
|
Predefined container strategies are accessible via `CONTAINER_STRATEGY` constant.
|
|
|
|
|
|
### Clear
|
|
|
|
```js
|
|
CONTAINER_STRATEGY.Clear(containerRef: ViewContainerRef)
|
|
```
|
|
|
|
Clears given container before content projection.
|
|
|
|
|
|
### Append
|
|
|
|
```js
|
|
CONTAINER_STRATEGY.Append(containerRef: ViewContainerRef)
|
|
```
|
|
|
|
Projected content will be appended to the container.
|
|
|
|
|
|
### Prepend
|
|
|
|
```js
|
|
CONTAINER_STRATEGY.Prepend(containerRef: ViewContainerRef)
|
|
```
|
|
|
|
Projected content will be prepended to the container.
|
|
|
|
|
|
### Insert
|
|
|
|
```js
|
|
CONTAINER_STRATEGY.Insert(
|
|
containerRef: ViewContainerRef,
|
|
index: number,
|
|
)
|
|
```
|
|
|
|
Projected content will be inserted into to the container at given index (clamped by `0` and `length` of the `containerRef`).
|
|
|
|
|
|
## See Also
|
|
|
|
- [ProjectionStrategy](./Projection-Strategy.md)
|