2017-01-26 11 views
6

私は角度2で新しく、別の変数の中に含まれている変数に文字列を表示します。私はあなたに私の問題が何であるかの簡単な例を示し、私が達成したいでしょう:角2 - テンプレート内の変数内に変数を表示


questionnaire.component.ts

/* Starts being "", populating an input text will modify this */ 
name = "Albert"; 

/* This variable comes from calling an API, here I just put it as created to simplify */ 
question.title = "Hello {{name}}, how old are you?"; 

questionnaire.template.html

<p>{{question.title}}</p> 

私が得ている結果は次のとおりです。

こんにちは{{名前}}、あなたは何歳ですか?

と私の望ましい結果は次のようになります。

こんにちはアルバート、あなたは何歳ですか?

私は[innerHTMLプロパティ]の内側にそれを置く、代わりに中括弧のASCII文字を使用し、私のDBに格納されている文字列に「{{}}」を脱出しようとした...が、結果しています常に同じだった。

どうすればこの問題を解決できますか?

ありがとうございました!

答えて

12

{{}}は角型コンポーネントテンプレートでのみ動作し、任意の文字列では動作せず、DOMに動的に追加されたHTMLでは動作しません。

ただ、活字文字列補間を使用するように

question.title = `Hello ${this.name}, how old are you?`; 

に変更します。 angular2で

+0

ありがとう!それは魅力のように働いた。私は、 "タイトル"フィールドが 'Hello $ {this.name} ...'の場合、APIから直接オブジェクトを呼び出すDBからオブジェクト "質問"を取得しても動作すると思いますか? – AMarquez94

+0

申し訳ありませんが、私はそれが正確に何を意味するのか分かりません。それはあなたのコードをどこに置くか、 'this.name'がコードの実行場所から利用可能かどうかによって決まりますが、原理的にはTSコードのどこでも動作します。 –

+1

それで、心配しないで、自分で試してみて、それが私の特別なケースでうまくいくかどうかを見てみましょう。もう一度ありがとう! – AMarquez94

1

あなたが使用する必要がありこのキーワードたとえば

、$ {this.name}

関連する問題