如何在一些HTML节点

时间:2015-07-02 19:37:12

标签: javascript html angularjs

我遇到的问题是我从代表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。 任何帮助表示赞赏。

1 个答案:

答案 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);
  };
});