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