2016-05-01 17 views
0

HTMLからAngularJsにデータを渡したいと思います。これは正常に動作しています:HTML文字をデコードするAngularJs(不要)

<div ng-init='initModel(@Model.ToJson())'></div> 

実際のHTML:説明が正しくエンコードされ

<div ng-init='initModel({ 
     ... 
     "description": "<pre><code>&lt;script&gt;alert(\"test\");&lt;/script&gt;\n</code></pre>", 
     "title": "tes testse stsets sets" 
     } 
    }, 
    ... 
})'></div> 

。 <より前の>と<コード>の要素はエンコードされていません。これは信頼できるHTMLです。 <スクリプト>タグがエンコードされています。

私はこの機能を持っている私のAngularJsコントローラで

:私は、この関数にブレークポイントを置く場合

$scope.initModel = function(model) { 
    $scope.data = model.response.data; 
} 

、モデルの出力は次のとおりです。

"<pre><code><script>alert("test");</script>↵</code></pre>" 

AngularJsは、すべてのHTML文字をデコードするように見えますこのinitModel()関数を実行しますが、なぜですか?私はそれがHTMLでレンダリングされるのと同じエンコーディングをしたいと思います。

いくつかのアイデア?

ありがとうございます!

+0

あなたはngBindHtmlを使用する必要がありますhttps://docs.angularjs.org/api/ng/directive/ngBindHtml – dmoo

+0

私はすでにngBindHtmlを使用していますが、問題は

関連する問題