我遇到的问题是我从代表html的服务器获取了一些字符串 我需要为一些节点解析样式attrs,然后用Angular在视图中显示这个html。
所以我看到这个答案https://stackoverflow.com/a/494348/1022726可以帮助我创造 一个字符串的html节点,然后我查看每个项目并更改样式。 最后,我使用innerHTML的值来执行$ sce.trustAsHtml。
我有这段代码http://plnkr.co/edit/HUfAGR2uNMwb48rqXbkk?p=preview
<div ng-bind-html="trustedHtml"></div>
function($scope, $sce) {
var s = '<h1 style="color: red; font-size: 16px;">Subheader</h1><p style="font-size: 12px;">text</p>';
var div = document.createElement('div');
div.innerHTML = s;
$(div).find("*").each(function () {
$(this).height('100px');
});
$scope.trustedHtml = $sce.trustAsHtml(div.innerHTML);
}]);
我想知道是否有更好的方法来解析代表html的字符串,然后在视图中显示html。 任何帮助表示赞赏。
答案 0 :(得分:2)
您可以将其转换为过滤器,例如
sed ':a /\n$/! { N; $! ba; }; s///; s/\n/,/g' filename
然后在你的HTML中你可以有
app.filter('trusted', function($sce){
return function(text) {
return $sce.trustAsHtml(text);
};
});