2017-10-24 9 views
0

ローカルストレージからIDを参照できるので、表示する画像を割り当てることができますか?私はassets/フォルダのAngularJSアプリに画像のリストを持っています。現在のユーザーのIDを取得し、それを参照して動的なイメージを作成するにはどうすればよいですか?ユーザーが変更した場合、画像も変更されますか?LocalStorageのIDによる画像の読み込み4

TS

constructor() { 
    this.image1 = '../../assets/images/image1.png'; 
} 

HTML

<img [src]="image1"> 

答えて

1

template.html

<img src="{{'assets/images/image'+id+'.png'}}"> 

component.ts

export class Component { 
    private id = localStorage.getItem('user_id'); 
} 

更新回答:

テンプレート

<img [src]="image1"> 

component.tsあなたが ``のコードでそれらを取得する方法

export class Component { 
    private image1 = `assets/images/image${localStorage.getItem('user_id')}.png`; 
} 
+0

image1ファイル名はimage1.png、image2はimage2なので、どのように2つのイメージを参照できるでしょうか。png –

+0

user_idが1の場合、 '../../assets/images/image1.png'を出力します。 user_idが2ならば、 '../../assets/images/image2.png' –

+0

は ''../../assets/images/の代わりに'' assets/images/image1.png'.'を使います。 image1.png'.' – Chandru

1
あなたのような何かを行うことができます

: 'idは' あなたが読んれる値を持つ変数である

this.image1 = `assets/images/image${id}.png`; 

ストレージ(または他のソース)。

UPDATE:

class YourComponent { 

    image1: string = ''; 

    newImage(id: number) { 
     this.image1 = `assets/images/image${id}.png`; 
    } 

    someMethod() { 
    //do some stuff 
    this.newImage(2); //will change image1 to 'assets/images/image2.png' 
    //do more stuff 
    this.newImage(3); //now image1 is 'assets/images/image3.png' 
    } 
} 
+0

:私に教えD笑 – Swoox

+0

これらは、 'テンプレートリテラル' 活字体があまりにもサポートES6から機能です:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals –

+0

私はstackoverflow xDの意味がありません – Swoox