Я не знаю, как поставить preloader (простое изображение) до * ngFor. Если данные извлекаются с сервера, отображается мой список, но пока данные не загружены, отображается изображение.
<tr ngFor='#product of products' >
<td >
{{product.id+ " " + product.title}}
</td>
</tr>
Вы должны использовать ngIf. Вот шаблон, который вы можете использовать
<table *ngIf="products.length != 0">
<thead>
<tr>
<th>Id</th>
<th>Title</th>
</tr>
</thead>
<tbody>
<tr *ngFor="#product of products">
<td>{{product.id}}</td>
<td>{{product.title}}</td>
</tr>
</tbody>
</table>
<loading-image *ngIf="products.length == 0"></loading-image>
где loading-image
- это ваш компонент, который вы определяете сами
@Component({
selector: 'loading-image',
directives: [],
template: '
<img src="{{loadImg}}">
'
})
export class LoadingImage {
loadImg = 'assets/img/your-loading-image.gif';
}