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

时光怂恿深爱的人放手 提交于 2019-12-21 19:47:28

问题


We can user Rendered2 in browser version of Angular app but it requires document.body reference and it's not available on server rendering.

platform-browser has Title and Meta components but I would like to have more control over <head> section, like injecting <script> tags, accessing body element, etc.

Is there a way to do it?


回答1:


Actually, Angular Universal uses DOMINO library under the hood, which creates document in the same way as browser does. The only difference is that you have to inject DOCUMENT like this:

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');
    }
}


来源:https://stackoverflow.com/questions/48346873/how-to-add-class-to-body-in-angular-universal

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!