2016-05-01 11 views
0

Ich möchte Daten von HTML an AngularJs übergeben. Das funktioniert gut:AngularJs dekodieren HTML-Zeichen (unerwünscht)

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

Actual 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> 

Die Beschreibung ist richtig codiert. Die <vor> und <Code> Elemente sind nicht codiert, dies ist vertrauenswürdiges HTML. Das <Skript> Tag ist codiert.

In meinem AngularJS Controller habe ich diese Funktion:

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

Wenn ich einen Haltepunkt in dieser Funktion setzen, Ausgang des Modells ist:

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

Es ist wie AngularJS sieht decodiert alle HTML-Zeichen durch Ausführen dieser initModel() -Funktion, aber warum? Ich hätte gerne die gleiche Codierung, wie sie im HTML-Code gerendert wird.

Einige Ideen?

Danke!

+0

Sie müssen ngBindHtml verwenden https://docs.angularjs.org/api/ng/directive/ngBindHtml – dmoo

+0

Ich verwende bereits ngBindHtml, aber das Problem ist, dass das