我有这样的分层样式:
[ngStyle]="columnStyleArray[i1][i2].style"
应用于*ngFor.
我通过双向绑定进行更改。
到目前为止,在Angular 7中它可以正常工作,但是当我升级到Angular 8时,它不再起作用。调整浏览器大小后,新CSS生效并变得可见。
不确定这是Angular 8的错误还是我忽略了某些内容。
试图更改设置
封装:ViewEncapsulation.None,
changeDetection:ChangeDetectionStrategy.OnPush
<div class="template-container" *ngFor="let section of mailtemplateArray; let i1 = index">
<div [ngStyle]="sectionStyleArray[i1].style"></div>
</div>
没有任何错误代码,但CSS仅在调整窗口大小之后适用
答案 0 :(得分:0)
假设columnStyleArray[i1][i2].style
不是样式对象({ styleName: 'styleValue' }
),您似乎使用了错误的语法。试试这个:
[ngStyle]="{ propertyName: columnStyleArray[i1][i2].style }"
这是您推荐的Working Sample StackBlitz。
答案 1 :(得分:0)
尝试更改ChangeDetection
策略。对我来说,听起来好像是因为对对象进行突变而没有触发DOM更新,所以OnPush
策略严格地在寻找不变的变化。
如果更改策略可行,则可以不变地更新集合(措辞?),也可以使用ChangeDetectorRef
方法detectChanges
触发DOM更新。