我在Angular 8中有以下代码。
<mat-grid-list cols="5" rowHeight="16:9" gutterSize="1%">
<mat-grid-tile *ngFor="let m of media; index as i">
<div class="media-cards" [ngStyle]="{'background-image': 'url(' + m.thumbnail + ')'}"></div>
</mat-grid-tile>
</mat-grid-list>
由于某些奇怪和未知的原因,它不会background-image
在循环中生成的某些元素中添加样式。m.thumbnail
是有效的URL,可用于media
对象的每个元素。
您可以在上图中看到background-image
第二个元素缺少该样式。
为什么会这样呢?问题出在哪儿?
原来,某些URL带有括号(... Fitness%20(10).JPG ...)。因此,当我使用style时'background-image': 'url(__the_url__)'
,由于括号而中断。看起来Angular在将样式添加到元素之前可能正在验证样式。由于这些规则由于括号而无法验证,因此不会将其添加到元素中。
因此,我将URL括在单引号中,使其成为字符串文字,以便括号不会造成问题,并且可以正常工作。而且有效。
{'background-image': 'url(\'' + m.thumbnail + '\')'}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句