我正在学习Angular 2/4,我看到带有ng生成属性的html标签:_ngcontent-c0, _ngcontent-c1...
这个c值是什么意思?
答案 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
不添加角度的动态属性