首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用CLI创建角组件给出封装: ViewEncapsulation.None

用CLI创建角组件给出封装: ViewEncapsulation.None
EN

Stack Overflow用户
提问于 2017-11-10 21:37:29
回答 3查看 1.8K关注 0票数 0

学习angular5。当我使用CLI (角的CLI)创建新的组件时,我得到以下代码:

代码语言:javascript
复制
import { Component, OnInit } from '@angular/core';

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

  constructor() { }

  ngOnInit() {
  } 
}

但是,encapsulation: ViewEncapsulation.None使代码中断并输出以下错误消息:

我知道如何通过删除encapsulation: ViewEncapsulation.None来修复这个bug。但是,是否有一种方法可以从一开始就不使用这一行代码?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-11-10 21:46:41

添加导入

代码语言:javascript
复制
import {ViewEncapsulation} from '@angular/core';

但是您必须知道ViewEncapsulation.Emulated是默认的,最好使用模拟。ViewEncapsulation.Native不会在所有浏览器上工作。

票数 2
EN

Stack Overflow用户

发布于 2017-11-14 03:29:45

目前有一个悬而未决的问题,即CLI正在生成ViewEncapsulation.None。这里正在跟踪这个问题:https://github.com/angular/angular-cli/issues/8398

还有一个PR来修复这个bug,在这里跟踪:https://github.com/angular/devkit/pull/270

现在,你有两个选择。

  1. 您可以删除行encapsulation: ViewEncapsulation.None以消除错误。角将默认ViewEncapsulation.Emulated
  2. 您可以按照Fateh所提到的那样保持该行,并添加导入。这将使ViewEncapsulation设置为None,这可能导致其他问题,例如将样式应用于您不希望将它们应用到的组件上。
票数 3
EN

Stack Overflow用户

发布于 2017-11-21 10:26:15

角CLI版本1.5.3

代码语言:javascript
复制
ng g component test

此版本的角cli生成以下代码:

代码语言:javascript
复制
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-test',
  templateUrl: './test.component.html',
  styleUrls: ['./test.component.scss']
})
export class TestComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

这意味着默认情况下封装模式是ViewEncapsulation.Emulated

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47231504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档