在角度为2的主index.html上的body标签上使用ngStyle

时间:2017-01-28 17:50:43

标签: css angular typescript angular2-template

我找不到使用angular 2在body标签的index.html上使用ngStyle的方法。

就像在index.html上一样:

  <body ngStyle="bodyStyle">
    Demo text
  </body>

我找到的唯一方法是在组件中使用"encapsulation: ViewEncapsulation.None",但是,只能使用标准css类,但不能使用变量或函数作为ngStyle,

喜欢,在组件样式上:

body {
      background: red;
   } 

我还在angularjs上找到了类似下面链接的内容。

http://plnkr.co/edit/7cwAeGMsCYA8HIrWbl7d?p=preview

可以在角度2中获得与上面链接相同的结果吗?

1 个答案:

答案 0 :(得分:3)

没有办法做到这一点。 ngStyle仅适用于Angular组件的模板。 <body>不能位于组件模板中。

您可以改为使用https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style

另一种方法是使用'body'作为AppComponent的选择器,并使用@HostBinding()

应用样式
@Component({
  selector: 'body',
  ...
})
export class AppComponent {
  @HostBinding('style.background-color') 
  backgroundColor:string = 'red';
}