Angular style.scss“;“全球”;到特定模块

Angular style.scss“;“全球”;到特定模块,angular,sass,Angular,Sass,随着Angular 5应用程序的发展,我已经开始将某些类似的组件移动到它们自己的模块 我现在的问题是:是否可以有一个类似于全局样式.scss的文件,但范围限于一个特定的模块(而不是整个应用程序) i、 e.将其样式应用于模块mymodule(但不适用于任何其他模块)中的所有组件的文件样式mymodule.scs。以下是一些选项,其中没有一个选项仅对您的模块起全局作用,不会产生任何妥协: 选项1:SCSS@import 使用SCSS@import在该模块内的所有组件样式表中导入样式mymodule

随着Angular 5应用程序的发展,我已经开始将某些类似的
组件
移动到它们自己的
模块

我现在的问题是:是否可以有一个类似于全局
样式.scss
的文件,但范围限于一个特定的
模块(而不是整个应用程序)


i、 e.将其样式应用于模块
mymodule
(但不适用于任何其他模块)中的所有
组件的文件样式mymodule.scs

以下是一些选项,其中没有一个选项仅对您的模块起全局作用,不会产生任何妥协:

选项1:SCSS
@import
使用SCSS
@import
在该模块内的所有组件样式表中导入
样式mymodule.SCSS

选项2:
@组件
样式URL
@Component
装饰器的属性采用数组。您可以在那里添加
样式mymodule.scss

选项3:
angular cli.json
样式
style mymodule.scss
添加到
angular cli.json
中的全局样式表中。在
样式mymodule.scss
中,在父类中添加所有样式:

.mymodule {
  // add all the module styles here.
}
然后在所有模块组件中使用
@Component
中的属性:

@Component({
  ...
  host: {'class': 'mymodule'}
  ...
})

请注意,由于这不是一个动态类,因此我使用了
host
属性,而不是通常首选的动态类使用`的方法。

您可以通过在该模块中的所有组件
.scss
文件中导入
样式mymodule.scss
来实现这一点。我不确定是否可以在没有导入的情况下将
样式mymodule.scs
应用于这些组件。或者,
@Component
装饰器的
样式URL
属性采用数组。您还可以在那里添加
样式mymodule.scss
。但同样,这涉及到在模块的每个组件中添加它。感谢Sam提出的解决方案。我只是在想,我的问题肯定是一个明智的,应该得到支持的问题?是的,我确实认为这是一个公平的问题。我以前有过这样的场景,我必须创建一个卡组件集合,并希望这些卡之间有一个共同的外观和感觉。我可以想到第三种选择。我将在回答中总结我能想到的所有选项。谢谢,我现在选择选项1(scss@import),这对我来说很好。但是,我仍然希望看到模块带有自己的style.scss文件。将其转换为功能请求的最佳位置在哪里?也许另一种思考方式,而不是将其称为
风格的mymodule.scss
,将其与组件类似,即
my.module.scss
。功能请求的有害位置将在。