2016-11-17 14 views
0

次のような状況で複数の変数(クラスから)を補間するためのAngular2の方法は何ですか?文字列内の補間方法は?

<img alt="" src="/images/{{userName}}/{{year}}/{{nameOfImage}}.jpg" /> 

component.tsクラスには、次のようになります。

export class EditorsChoiceComponent { 

    userName = 'Black Ranger'; 
    year = 'sometimeinthe90s'; 
    nameOfImage = 'gogopowerrangers' 
} 

答えて

2

それはtemplate stringaccessorを使用して、クラスでそれを行うのに十分に簡単です:

export class EditorsChoiceComponent { 
    userName = 'Black Ranger'; 
    year = 'sometimeinthe90s'; 
    nameOfImage = 'gogopowerrangers'; 

    get imageSrc() { 
    return `/images/${this.userName}/${this.year}/${this.nameOfImage}.jpg`; 
    } 
} 

結合が簡単になります

ではなく、
<img alt="" [src]="imageSrc" /> 
+0

ああ素敵! 'get'が何をしているのかを私に説明できますか? '{{imageSrc()}}'としてこれにアクセスするだけですか?なぜメソッドが 'get'なしで書かれていないのですか? – Moose

+1

@Moose 'get'はそれを[accessor](http://www.typescriptlang.org/docs/handbook/classes.html#accessors)にします – jonrsharpe

+0

あなたの情報がループ。例えば... '<フォームは、[formGroup] = "foo_barは">

' は式が期待された補間を得たとして戻ってきます。 –

1

あなたはすでにそれを持っているように動作するはずです:

<img alt="" src="/images/{{userName}}/{{year}}/{{nameOfImage}}.jpg" /> 

例:

@Component({ 
    selector: 'blue', 
    template: 'Hello <img src="https://{{server}}/{{path}}" />' 
}) 
export class BlueComponent { 
    server:string='encrypted-tbn3.gstatic.com' 
    path: string='images?q=tbn:ANd9GcShusMbGevCg9avhj28vFlBQsUlv49OFoXWUDyHmZOawWZUEm0L0TSB526d' 

} 

デモ:

http://plnkr.co/edit/VOMYCN3sLMsqZQxn1jAJ?p=preview

+1

それはちょうど中括弧でリテラル文字列です、確かに? – jonrsharpe

+0

この解決策は、私に次のエラーを与えました: 'パーサーエラー:補間({{}})はxx列で式が期待されていました... ' – Moose

+1

うん、ちょうど試しました。こっちも一緒。私が期待したものではありません! – jonrsharpe