_ngcontent-c#在Angular中意味着什么?

时间:2017-07-13 13:30:29

标签: javascript angular

我正在学习Angular 2/4,我看到带有ng生成属性的html标签:_ngcontent-c0, _ngcontent-c1...

这个c值是什么意思?

2 个答案:

答案 0 :(得分:19)

使用_ngcontent-c#时会添加

ViewEncapsulation.Emulated属性 - 这是默认值。 Angular使用这些属性来定位具有样式的特定元素。数字c是主机组件的唯一标识符。例如,如果您有两个具有以下模板的组件:

ComponentA
<span></span>
<comp-b></comp-b>

ComponenB
<h1></h1>

Angular会将组件A中包含样式的所有元素标记为_ngcontent-c0,并将组件B中包含样式的所有元素标记为_ngcontent-c1

<comp-a>
    <span _ngcontent-c0></span>
    <comp-b _ngcontent-c0>
        <h1 _ngcontent-c1></h1>
    </comp-b>
</comp-a>

答案 1 :(得分:3)

您可以通过将以下导入添加到组件中来禁用它,

import {ViewEncapsulation} from '@angular/core';

import { Component, OnInit } from '@angular/core';
import { ViewEncapsulation } from '@angular/core';

@Component({
  selector: 'app-dashboard',
  templateUrl: './dashboard.component.html',
  styleUrls: ['./dashboard.component.css'],
  encapsulation: ViewEncapsulation.None
})
export class DashboardComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

请注意这一行:

 encapsulation: ViewEncapsulation.None

不添加角度的动态属性