2012-07-10 6 views
17

私はAngularJSを、HTMLレスポンスを生成するサードパーティのサービスと共に使用しています。 HTMLレスポンスをリストとしてレンダリングするためにng-repeatを使いたいのですが、Angularはそれをテキストとしてレンダリングします。AngularJS - HTML値をレンダリングするのにng-repeatを使用できますか?

ng-repeatを使用してHTMLプロパティをレンダリングすることはできますか?

私は、この問題を示すためにこのjsFiddleを作成しました。 http://jsfiddle.net/DrtNc/1/

+1

この質問をご覧になるには、[ngBindHtml](http://docs.angularjs.org/api/ng.directive:ngBindHtml)のドキュメントのトップコメントをご覧ください。これらの答えはしなかったが、それは私のために働いた。 –

答えて

19

私はng-bind-html-unsafeを使用してあなたが必要なものを得ると思います。

<div ng:repeat="item in items" ng-bind-html-unsafe="item.html"></div> 

は、ここで作業フィドルです:ディレクティブのhttp://jsfiddle.net/nfreitas/aHfAp/

ドキュメントはここで見つけることができます:私はこれを達成http://docs.angularjs.org/api/ng.directive:ngBindHtmlUnsafe

+0

優れています –

+1

item.htmlでカスタムディレクティブを使用したい場合は – test30

+4

これは2〜3年前です。 ://stackoverflow.com/questions/19415394/with-ng-bind-html-unsafe-removed-how-do-i-inject-html –

2

item.htmlは常にテキストとして解釈されます。それを明示的にhtmlに変換する必要があります。 click here

各文字列をhtmlに変換するレンダリング機能を追加しました。

+0

超クール!助けてくれてありがとう –

+0

あなたは歓迎です:) – Kishore

+3

mmm ...私はそれが祝うには早すぎると思う。あなたのソリューションはinnerHTMLをレンダリングします。本当に必要なのは、HTML全体をレンダリングすることです。 私の更新を見てください:http://jsfiddle.net/DrtNc/4/ –

16

方法はNGリピート内・バインド - HTMLをngのことです。

<div ng-repeat="comment in comments"> 
    <div ng-bind-html="comment.content"></div> 
</div> 

+0

以下です。$ sceを使用するのを忘れないでください。参照してください:http://stackoverflow.com/questions/19415394/with-ng-bind-html-unsafe-removed-how-do-i-inject-html – suhendri

+0

これは私にとってはうまくいきません – Xsmael

関連する問題