【发布时间】:2026-01-30 10:30:01
【问题描述】:
我在 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(' + m.thumbnail + ');'
-
@Mickers 我原以为添加分号不会有任何区别。但令我惊讶的是,在添加分号后,我注意到样式没有添加到 4 个元素中的任何一个,而没有它,样式被添加到 2 个元素而不是添加到 2 个元素。
-
我为 ngStyle 对象添加了另一种样式。
{'background-image': 'url(' + m.thumbnail + ')', 'background-color': 'pink'}。'background-color': 'pink'被添加到所有四个元素中,而background-image在两个元素中缺失。
标签: angular firebase angular8 ng-style