在不同的组件中使用不同的样式表 Angular Webpack

Use different Stylesheets in different components Angular Webpack

我正在处理一个 Angular Webpack 项目,我必须在其中开发新的网页设计。

之前的开发人员通过在 index.html 文件中引用它来使用 Typebase.css 构建所有网页。

现在我想将 bootstrap 用于我的所有设计。当我尝试使用它时,我的所有 CSS 都在 Typebase 和 bootstrap.

之间混乱了

有什么方法可以让我的新设计组件只使用 bootstrap 而在旧网页的组件中只使用 Typebase 直到最终产品建立起来?

我尝试了 styleUrls 选项但没有成功。那么我可以在 styleUrls 中不全局地包含样式表吗?如果是那么如何。

提前感谢您的帮助。

是的,你可以做到。

  1. 首先,您需要从 index.html
  2. 中删除 Typebase.css
  3. 在每个旧组件中显式添加 Typebase.css 例如:@Component({ 选择器:'selectorName', 模板网址:'templateUrl' styleUrls: ['./Typebase.css'] })
  4. 您可以用同样的方法将 styleUrls 中的 bootstrap.css 文件添加到您的新组件中。

不是最干净的方法,但这应该可行。

好的,如果所有旧网页都有一个容器组件,那么您可以在该组件中执行以下操作:

constructor (@Inject(DOCUMENT) private document) { }

ngOnInit() {
  let styleSheet = this.document.getElementById('your_style_link_id');
  //REMOVE IT 
}

所以首先你应该在 index.html 中包含这两种样式并给它们每个一个 ID。

之后,在旧页面的容器组件中,您应该删除 "bootstrap" 并添加旧样式 sheet,在新页面的容器组件中,您应该删除旧样式sheet 并添加 bootstrap.