2017-06-16 3 views
0

ユーザがサーバからアップロードするイメージをロードするAngular 4/Ionic 3を持つアプリケーションを構築しています。私は現在、以下のコードを使用していますが、動作していません。イメージがサーバからロードされているときにプレースホルダイメージをロードするにはどうすればいいですか?

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

私は何を間違っているのか分かりません。メイン画像がサーバーからロードされるまでプレースホルダー画像が表示されると思いました。代わりに、メイン画像が読み込まれるまでまだ空白になっています。私が使用しなければならないAngularに固有の何かがありますか?

+0

それは私が知っている角度 – Duannx

+0

いけないhttps://ionicframework.com/docs/api/components/img/Img/確認しますか、イオン性である。しかし、私はあなたのimgのsrcが間違っていると思うそれはこのようなものでなければならない – karthick

+0

あなたは相対パスを設定する必要があります。 './asstes/images/profileimage.png" ' –

答えて

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

最初の 'img'または単に' src'の文字列リテラルパスのための一重引用符が必要だと思います。 –

+0

ヒントのための@surajありがとう - '[]を削除して修正しました。 ' –

-1

この遅延ロードプラグインを使用する方がよい。それは素晴らしい作品。..

インストール:app.module.tsでnpm install ng2-lazyload-image --save

インポート遅延ロード:import { LazyLoadImageModule } from 'ng2-lazyload-image';

imports: [ BrowserModule, LazyLoadImageModule ], 

をウルのhtmlでこれとウルのimgタグを置き換える: <img [defaultImage]="defaultImage" [lazyLoad]="image" [offset]="offset">

このコンポーネントを作成するには:

defaultImage = 'https://www.placecage.com/1000/1000'; 
image = 'https://images.unsplash.com/photo-1443890923422-7819ed4101c0?fm=jpg'; 
offset = 100; 
01あなたがこの中に任意の助けが必要な場合は詳細情報について

は私が..このことができます

希望をお知らせこのhttps://www.npmjs.com/package/ng2-lazyload-image

を参照してください。..

+1

おかげで動作します相対パスコメントが私の答え –

+0

@Roopendraを編集し..I @Roopendraあなたを見たuが、この答えは今便利であると言うことができます;) –

+0

うん – Roopendra

0

あなたはここに文字列リテラルとして相対パスを提供する必要があります。

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

か試してみてください。

<img [src]="user.image || './assets/images/profileimage.png'" /> 
関連する問題