AngularJSを使用しているときに、ページに表示するために中括弧をエスケープするにはどうすればよいですか?


97

ユーザーに二重の波括弧を見てもらいたいのですが、Angularはそれらを自動的にバインドします。これは、ページの読み込み時にバインドに使用される中括弧を見たくないというこの質問の反対のケースです。

ユーザーにこれを見てほしい:

My name is {{person.name}}.

しかし、Angularは{{person.name}}値に置き換えられます。これはうまくいくと思いましたが、angularは次の値に置き換えます:

{{person.name}}

プランカー:http ://plnkr.co/edit/XBJjr6uR1rMAg3Ng7DiJ


あなたは(のような全く別の区切り文字で行くために喜んでいる場合[[ ]]):stackoverflow.com/questions/12923521/...
ティロ

2
ありがとう、私はそれを見ましたが、全体の要点はブレースがどのように機能するかを示すサンプルページにあり、ソースを表示して、サンプルが表示されているページとまったく同じように見えるようにしたいのです。
Jason Goemaat 2013年


1
@MaximeLorantこれは、ページが読み込まれているときに中括弧が一時的に表示されないようにするためのまったく別の問題です。この質問は、ページが読み込まれた後でも表示されるようにし、angularがそれらをバインドしないようにすることです。
Jason Goemaat 2014

回答:


147
<code ng-non-bindable>{{person.name}}</code>

ドキュメンテーション@ ngNonBindable


6
<div>またはその他のタグを使用することもできます。ng-non-bindableを追加するだけです
Mike Pugh

5
{{value}}入力タグ値の内部にある場合はどうなりますか?
Timo Huovinen、2015

@ TimoHuovinen、HTML 属性で中括弧を出力するに、私の答えを参照しください。
joeytwiddle 2016年

あなたが使用することができます@TimoHuovinen ng-non-bindableコンテナ要素で、あなたは私の答えを見ることができます:stackoverflow.com/a/42511222/1407491
ナビKAZ

現在、これは機能しません。ただし、Angular 8を使用しています。@ joeytwiddleの答えはそうでした。
JE Carter II

28

編集: 引用符内の角かっこの間にスラッシュを追加すると機能します

{{  "{{ person.name }\}"   }}  

これも..角度解釈をパスすることによって

{{ person.name }<!---->}

これも ..

{{ person.name }<x>} 

{{ person.name }<!>}

私に与えますLexer Error
ジェイソンGoemaat

1
{{'{{' asd '}}'}}彼についてはどう
ですか

4
これは、回答が承認された質問に対する遅い回答です。新しい回答を提供することを選択した場合、ソリューションが確実に機能するように特別な予防策を講じ、この回答が広く受け入れられている回答よりも好まれる説得力のある理由を提供する必要があります。また、これは質問に直接答えるものではありません。
Claies 2015

このように{{...}<!---->}
ROMANIA_engineer

11

この例では、中かっこをプレースホルダーに表示するため、HTML 属性内に表示する必要がありました。これを使用しました:

 <input placeholder="{{ 'Hello {' + '{person.name}' + '}!' }}" ...>

ご覧のとおり、中かっこを分離しておくために、3つの小さい文字列から文字列を作成しています。

'Hello {' + '{person.name}' + '}!'

これは使用を回避するng-non-bindableためng-、要素の他の場所で属性を引き続き使用できます。


機能します(最近では角度8)。
JE Carter II

3

ng-non-bindableコンテナで使用すると、これはここのコンテナ内のすべての要素で有効です。

<div ng-non-bindable>
  <span>{{person.name}}</span>
  <img src="#" alt="{{person.name}}">
  <input placeholder="{{person.name}}">
</div>


1

Angular 9用に更新

ngNonBindable補間バインディングをエスケープするために使用します。

<div ngNonBindable>
  My name is {{person.name}}
</div>

1

テキスト全体に単一の括弧を付けたいのですが、上記の解決策ではうまくいきませんでした。したがって、Angularを推奨しました。

角度バージョン:5

必須テキスト:私の名前は{person.name}です。

<span>My name is {{'{'}}person.name{{'}'}}.</span>

誰かのお役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.