*ngIf 用于样式标签

*ngIf for style tag

我的问题似乎无法通过使用传统的条件样式方式解决,例如 [ngStyle][ngClass]。我想使用 :host ::ng-deep 有条件地定义一个 CSS-选择器,例如:

<style *ngIf='preventXScroll'>
    :host ::ng-deep .p-datatable-wrapper {overflow-x: hidden !important;}
</style>

但是不管 preventXScroll 的实际状态如何,这样做总是会应用样式。有什么想法吗?

其实问题可以通过[ngClass]解决。

模板:

<div class='outer-wrapper' [ngClass]='{"prevent-x-scroll": preventXScroll}'>
    <p-table>
        ...
    </p-table>
</div>

样式表:

:host ::ng-deep .prevent-x-scroll .p-datatable-wrapper {
    overflow-x: hidden !important;
}

这样样式仅应用于 p-datatable-wrapper(在 p-table 子组件内),而它包含在 prevent-x-scroll.