如何在 Angular Universal 中将 class 添加到 <body>?

How to add class to <body> in Angular Universal?

我们可以在 Angular 应用程序的浏览器版本中使用 Rendered2,但它需要 document.body 引用,并且在服务器呈现时不可用。

platform-browserTitleMeta 组件,但我想对 <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');
    }
}