如何在Angular组件中使用Bootstrap SCSS函数?

时间:2019-07-27 21:21:39

标签: angular angular8

我无法理解如何在Angular组件中使用某些Bootstrap SCSS函数,例如theme-colorcolor

我有一个component.scss,看起来像:

.card {
  cursor: pointer;
  &:hover {
    background-color: theme-color("primary");
  }
}

但是这不起作用,我可以无误地添加。如果我在文件前添加@import '~node_modules/bootstrap/scss/bootstrap';,但是它没有考虑我的全局样式,而是使用默认颜色。

如果仅导入函数SCSS,则它不理解其他导入,例如包含var的导入,例如$color

在我的全局styles.scss样式表中进行编辑时,一切正常。

似乎关于视图封装的某些事情正在阻止全局SCSS函数从Bootstrap过滤到我的组件SCSS,但我无法完全弄清它是什么。

那么,如何将全局Bootstrap之类的SCSS函数放入我的各个组件SCSS文件中?

1 个答案:

答案 0 :(得分:1)

这就是我的方法。

  1. 在styles.scss中:

    @import 'custom-bootstrap';
    // + custome global scss rules
    
  2. 在custom-bootstrap.scss中

    @import './common';
    @import '~bootstrap/scss/root';
    @import '~bootstrap/scss/reboot';
    // + other imports copied from the standard bootstrap.scss file
    // some of them being commented out because I don't need them
    
  3. common.scss

    // potential bootstrap variable overrides here
    @import '~bootstrap/scss/functions';
    @import '~bootstrap/scss/variables';
    @import '~bootstrap/scss/mixins';
    
  4. 在任何组件的scss文件中:

    @import '../../common'; // the path may of course vary depending on the depth
    // and here I can use any bootstrap (or custom) variable, mixin or function