如何在 Angular Universal 中将 class 添加到 <body>?
How to add class to <body> in Angular Universal?
我们可以在 Angular 应用程序的浏览器版本中使用 Rendered2
,但它需要 document.body
引用,并且在服务器呈现时不可用。
platform-browser
有 Title
和 Meta
组件,但我想对 <head>
部分有更多控制,比如注入 <script>
标签,访问 body
元素等
有办法吗?
实际上,Angular Universal 在后台使用 DOMINO 库,它以与浏览器相同的方式创建 document
。唯一的区别是你必须像这样注入 DOCUMENT
:
import { DOCUMENT } from '@angular/common';
import { Component, Inject, Renderer2 } from '@angular/core';
@Component({ ... })
export class AppComponent {
constructor(@Inject(DOCUMENT) document, r: Renderer2) {
r.addClass(document.body, 'myclass');
}
}
我们可以在 Angular 应用程序的浏览器版本中使用 Rendered2
,但它需要 document.body
引用,并且在服务器呈现时不可用。
platform-browser
有 Title
和 Meta
组件,但我想对 <head>
部分有更多控制,比如注入 <script>
标签,访问 body
元素等
有办法吗?
实际上,Angular Universal 在后台使用 DOMINO 库,它以与浏览器相同的方式创建 document
。唯一的区别是你必须像这样注入 DOCUMENT
:
import { DOCUMENT } from '@angular/common';
import { Component, Inject, Renderer2 } from '@angular/core';
@Component({ ... })
export class AppComponent {
constructor(@Inject(DOCUMENT) document, r: Renderer2) {
r.addClass(document.body, 'myclass');
}
}