我正在尝试渲染保存在json中的html。
看起来json中的这个html被转义了:
{"desc": [{
"label": "Long Label",
"label-short": "short Label",
"text": "Text.<br \/> text <strong class=\"class\"> text <\/strong> foo."
}]}
我有工厂服务来获取json文件。
getFile : function() {
return $http({
url: 'data/foo.json',
method: 'GET'
})
}
控制器:
$scope.decodeJson = function(data){
return Data.decode(data);
}
var handleSuccessGetFile = function(data, status) {
$scope.Desc = data;
};
Data.getFile().success(handleSuccessGetFile).error(handleErrorGetFile);
现在我要渲染$ scope.Desc
<accordion>
<accordion-group ng-repeat="desc in Desc.desc" heading="{{desc.label}}">
<p>
{{decodeJson(desc.text)}}
</p>
</accordion-group>
</accordion>
但是渲染的desc.text被渲染为字符串而不是html,我怎样才能将它转换为html?
基于https://code.google.com/p/jsool/source/browse/jsool-site/js/util/Encoder.js?r=176
我创建服务解码
decode: function(string){
return string.replace(/&#[0-9]+;/g,function(text,index){
return String.fromCharCode(text.match(/[0-9]+/)[0]);
});
}
但它仍然呈现为字符串。