Я пытаюсь изменить цвет фона для всей страницы в Angular (будет использовать body или html-тег при работе без рамки). и я не могу найти лучшую практику для этого, я хочу, чтобы это было в рамках, если возможно, с тех пор, как я создаю приложение на долгие годы.
Как изменить цвет фона всей страницы в Угловом
Ответ 1
Вы можете сделать это с любого из ваших компонентов. Например:
    export class AppComponent implements AfterViewInit {
       constructor(private elementRef: ElementRef){
       }
       ngAfterViewInit(){
         this.elementRef.nativeElement.ownerDocument.body.style.backgroundColor = 'yourColor';
      }
   }
 Используя this.elementRef.nativeElement.ownerDocument, вы можете получить доступ к объекту window.document без нарушения какого-либо углового соглашения. Конечно, вы можете напрямую обращаться к объекту document используя window.document но, я думаю, было бы лучше получить доступ к нему через ElementRef.
Ответ 2
 Если вы используете angular-cli. 
 Должен существовать файл глобального стиля.
-  ЦСИ 
- приложение
 - активы
 - окружающая среда
 - index.html
 - styles.css
 
 
 Там вы можете указать свой стиль, например html { background-color: black; } html { background-color: black; } чтобы выполнить всю страницу.
Ответ 3
Вообще говоря, использование ElementRef может сделать ваше приложение более уязвимым для атак XSS. Для получения дополнительной информации обратитесь к этому официальному документу Angular.
Кроме того, установка глобального стиля в вашем файле styles.css, как предположил Andresson, может не решить вашу проблему, если вы работаете с несколькими компонентами, которые имеют свои собственные Shadow DOMs.
Здесь более безопасное решение вашей проблемы с использованием View Encapsulation.
Установите View Encapsulation на None (не забудьте импортировать) в своем app.component.ts:
import {Component, ViewEncapsulation} from '@angular/core';
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],
  encapsulation: ViewEncapsulation.None
})
Затем перейдите в файл app.component.css и просто добавьте цвет фона:
body {
  background-color: green;
}
Это изменение повлияет на ваше приложение во всем мире. Подробнее об этом читайте здесь.
Ответ 4
Следующее решение - еще одна альтернатива, с которой я столкнулся, когда столкнулся с той же проблемой. Чтобы приложение было более адаптируемым на разных платформах, мы можем использовать класс Renderer2, предоставляемый Angular, в качестве такой службы:
export class AppComponent {
constructor(private el: ElementRef, private renderer:Renderer2){}
  ngAfterViewInit(){
this.renderer.setStyle(this.el.nativeElement.ownerDocument.body,'backgroundColor', 'yourchoice color');
}
}
Более подробную информацию о Renderer2 и его методах можно найти здесь: Render2_Description