我正在尝试在我的应用程序的多个位置使用Angular Material Datepicker。其中一种用法是对应用程序正常运行至关重要的遗留用法。它被大量使用,根本不应该修改。其他用法是更新的实现,在完成所有功能后最终将取代旧的用法。新的 Datepicker 隐藏在功能标志后面,可以在应用程序运行时进行修改。我们注意到,在尝试设置我们一直使用的 Datepicker的样式ng::deep
并!important
设置 Angular Material 类的样式时。然而,这种影响似乎是全球性的,因为它也在改变传统的 Datepicker。
我们如何才能将我们的 SCSS 更改限制在一个 Datepicker 上而不影响其他的?
项目结构
app
|
----calendar-1
|
----calendar-1.html
----calendar-1.scss
----calendar-1.ts
|
----calendar-2
|
----calendar-2.html
----calendar-2.scss
----calendar-2.ts
问题
// calendar-2/calendar-2.scss
::ng-deep {
mat-calendar {
background-color: green;
margin-top: -16px;
width: 258px;
}
}
calendar-1
并且calendar-2
都更新以反映该部分calendar-2/calendar-2.scss
内的样式,::ng-deep
因为它们的目标是相同的 Angular Material 类名称。