# Dom插入(Scripts与Styles) 你可以使用@abp/ng.core包提供的 `DomInsertionService` 以简单的方式的插入脚本与样式. ## 入门 你不必在模块或组件级别提供 `DomInsertionService` ,因为它已经在**根中**提供. 你可以在组件,指令或服务中直接注入并使用它. ```js import { DomInsertionService } from '@abp/ng.core'; @Component({ /* class metadata here */ }) class DemoComponent { constructor(private domInsertionService: DomInsertionService) {} } ``` ## 用法 你可以使用 `DomInsertionService` 提供的 `insertContent` 方法去创建一个 `` 元素放置在 `
`的末尾, `scriptElement` 类型是一个 `HTMLScriptElement`. 请参考[ContentStrategy](./Content-Strategy.md)查看所有可用的内容策略以及如何构建自己的内容策略. > 重要说明: `DomInsertionService` 不会两次插入相同的内容. 为了再次添加内容你首先应该使用 `removeContent` 方法删除旧内容. ### 如何插入Styles `insertContent` 方法的第一个参数需要一个 `ContentStrategy`. 如果传递 `StyleContentStrategy` 实例, `DomInsertionService` 将创建具有给定内容的 `` 元素放置在 ``的末尾, `styleElement` 类型是一个 `HTMLStyleElement`. 请参考[ContentStrategy](./Content-Strategy.md)查看所有可用的内容策略以及如何构建自己的内容策略. . > 重要说明: `DomInsertionService` 不会两次插入相同的内容. 为了再次添加内容你首先应该使用 `removeContent` 方法删除旧内容. ### 如何删除已插入的 Scripts & Styles 如果你传递 `HTMLScriptElement` 或 `HTMLStyleElement` 做为 `removeContent` 方法的第一个参数, `DomInsertionService` 将删除给定的元素. ```js import { DomInsertionService, CONTENT_STRATEGY } from '@abp/ng.core'; @Component({ /* class metadata here */ }) class DemoComponent { private styleElement: HTMLStyleElement; constructor(private domInsertionService: DomInsertionService) {} ngOnInit() { this.styleElement = this.domInsertionService.insertContent( CONTENT_STRATEGY.AppendStyleToHead('body {margin: 0;}') ); } ngOnDestroy() { this.domInsertionService.removeContent(this.styleElement); } } ``` 在上面的示例中,销毁组件时,将从 `` 中删除 `` 元素. ## API ### insertContent ```js insertContent