【发布时间】:2020-07-09 17:43:33
【问题描述】:
我决定为我项目中的所有组件将ViewEncapsulation 设置为None。
那么,如何将ViewEncapsulation.None 全局设置为整个项目?而不是在我的每个组件装饰器中设置它。
注意:仅供参考,我的部门在 RC.6 上
编辑:Günter Zöchbauer 提供的第二个解决方案也适用于 2.1.2
【问题讨论】:
标签: angular
我决定为我项目中的所有组件将ViewEncapsulation 设置为None。
那么,如何将ViewEncapsulation.None 全局设置为整个项目?而不是在我的每个组件装饰器中设置它。
注意:仅供参考,我的部门在 RC.6 上
编辑:Günter Zöchbauer 提供的第二个解决方案也适用于 2.1.2
【问题讨论】:
标签: angular
您可以通过传递自定义CompilerConfig 来设置默认视图封装。
此功能是在RC.2 中添加的(功能列表中的最后一项)
1.您可以在 NgModule 级别设置它
这种方式已经行不通了
@NgModule({
// imports, declaration, bootstrap, etc..
providers: [{
provide: CompilerConfig,
useValue: new CompilerConfig({
defaultEncapsulation: ViewEncapsulation.None
})
}]
})
export class AppModule {}
2。将其设置为引导级别(感谢 yurzui)
platformBrowserDynamic().bootstrapModule(AppModule, [
{
defaultEncapsulation: ViewEncapsulation.None
}
]);
请注意,您需要从@angular/core 导入ViewEncapsulation
3。在最近的 Angular 版本中,这可以在编译器选项中设置
注意:我自己还没有尝试过。 这就是我解释文档的方式:
在tsconfig.json
{
...,
angularCompilerOptions: {
defaultEncapsulation: 3;
}
}
【讨论】:
platformBrowserDynamic().bootstrapModule(AppModule, { defaultEncapsulation: ViewEncapsulation.None });
--aot=false 进行生产构建。