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/Content-Strategy.md

85 lines
2.2 KiB

# ContentStrategy
5 years ago
`ContentStrategy` 是@abp/ng.core包暴露出的抽象类. 它可以帮助你创建内联脚本或样式.
## API
### 构造函数
```js
constructor(
public content: string,
protected domStrategy?: DomStrategy,
protected contentSecurityStrategy?: ContentSecurityStrategy
)
```
- `content` 是被设置为 `<script>``<style>` 元素的 `textContent` 属性.
- `domStrategy` 是在插入创建的元素时将使用的 `DomStrategy` . (默认值: AppendToHead_)
- `contentSecurityStrategy``ContentSecurityStrategy`, 在创建的元素插入使用它它. (默认值: None_)
请参考[DomStrategy](./Dom-Strategy.md)和[ContentSecurityStrategy](./Content-Security-Strategy.md)文档了解它们的用法.
### createElement
```js
createElement(): HTMLScriptElement | HTMLStyleElement
```
该方法创建并且返回 `<script>``<style>` 元素, 将 `content` 设置为 `textContent`.
### insertElement
```js
insertElement(): void
```
该方法创建并且插入一个 `<script>``<style>` 元素.
## ScriptContentStrategy
`ScriptContentStrategy` 是扩展了 `ContentStrategy` 的类. 你可以使用它将 **`<script>`元素插入DOM**.
## StyleContentStrategy
`StyleContentStrategy` 是扩展了 `ContentStrategy` 的类. 你可以使用它将 **`<style>`元素插入DOM**.
## 预定义内容策略
预定义的内容策略可以通过 `CONTENT_STRATEGY` 常量访问.
### AppendScriptToBody
```js
CONTENT_STRATEGY.AppendScriptToBody(content: string)
```
创建具有给定内容的 `<script>` 元素, 并放置在文档中`<body>`标记的**末尾**.
### AppendScriptToHead
```js
CONTENT_STRATEGY.AppendScriptToHead(content: string)
```
创建具有给定内容的 `<script>` 元素, 并放置在文档中`<head>`标签的**末尾**.
### AppendStyleToHead
```js
CONTENT_STRATEGY.AppendStyleToHead(content: string)
```
创建具有给定内容的 `<style>` 元素, 并放置在文档中`<head>`标签的**末尾**.
### PrependStyleToHead
```js
CONTENT_STRATEGY.PrependStyleToHead(content: string)
```
创建具有给定内容的 `<style>` 元素, 并放置在文档中`<head>`标签的**头部**.
## 另请参阅
- [DomInsertionService](./Dom-Insertion-Service.md)