2017-06-16 4 views
0

Je construis une application avec Angular 4/Ionic 3 qui charge les images téléchargées par les utilisateurs à partir d'un serveur. Je suis actuellement en utilisant le code ci-dessous, mais il ne fonctionne pas:Comment charger une image d'espace réservé lorsque mon image est en cours de chargement depuis le serveur

<img src="{{user.image}} || assets/images/profileimage.png" /> 

Je ne sais pas ce que je fais mal. J'ai pensé à ce qu'il montrerait l'image de l'espace réservé jusqu'à ce que l'image principale ait été chargée à partir du serveur. Au lieu de cela, il reste vierge jusqu'à ce que l'image principale se charge. Y a-t-il quelque chose de spécifique à Angular que je devrais utiliser?

+0

Check it https://ionicframework.com/docs/api/components/img/Img/ – Duannx

+0

Je ne sais pas ou angulaire ionique. Mais je pense que votre img src est faux il devrait être quelque chose comme ça – karthick

+0

vous devez définir le chemin relatif. './asstes/images/profileimage.png" ' –

Répondre

0
isImgLoaded:bool = false; 
<img *ngIf="!isImgLoaded" src="assets/images/profileimage.png" > 
<img [hidden]="!isImgLoaded" [src]="user.image" (load)="isImgLoaded = true" > 
+0

Je pense que vous avez besoin de guillemets simples pour le chemin littéral chaîne dans le premier 'img' ou juste' src' .. typo? –

+0

@suraj merci pour l'indice - Je l'ai corrigé en supprimant [] ' –

-1

Mieux vaut utiliser ce plugin de chargement paresseux. Il fonctionne génial ..

Installer: npm install ng2-lazyload-image --save

importation charge paresseux app.module.ts: import { LazyLoadImageModule } from 'ng2-lazyload-image';

imports: [ BrowserModule, LazyLoadImageModule ], 

dans ur html remplacer ur balise img avec ceci: <img [defaultImage]="defaultImage" [lazyLoad]="image" [offset]="offset">

dans votre composant créez cette variable:

defaultImage = 'https://www.placecage.com/1000/1000'; 
image = 'https://images.unsplash.com/photo-1443890923422-7819ed4101c0?fm=jpg'; 
offset = 100; 

Pour plus d'informations se réfèrent ce https://www.npmjs.com/package/ng2-lazyload-image

Si vous avez besoin d'aide dans ce laissez-moi savoir ..

Hope this helps ..

+1

Merci pour vos commentaires @Roopendra ..i a édité ma réponse –

+0

@Roopendra on peut dire que cette réponse est utile maintenant;) –

+0

Ouais c'est mieux maintenant :) Merci! – Roopendra

0

Vous devez fournir le chemin relatif comme une chaîne littérale ici.

<img src="{{user.image}} || ./assets/images/profileimage.png" /> 

Ou essayez:

<img [src]="user.image || './assets/images/profileimage.png'" />