javascript - 如何将 $sce.trustAsHtml 与某些 HTML 节点一起使用

标签 javascript html angularjs

我面临的问题是我从服务器获取一些代表 html 的字符串 我需要解析某些节点的样式属性,然后使用 Angular 在 View 中显示此 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 的字符串,然后在 View 中显示该 html。 如有任何帮助,我们将不胜感激。

最佳答案

你可以把它做成一个过滤器,比如

app.filter('trusted', function($sce){
  return function(text) {
    return $sce.trustAsHtml(text);
  };
});

然后在你的html中你可以有

<div ng-bind-html="text | trusted"></div>

关于javascript - 如何将 $sce.trustAsHtml 与某些 HTML 节点一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31193195/

相关文章:

javascript - Cordova 文件传输 |如何将标题中的字符串放入 TargetPath?

javascript - 如何使用 CSS 在 React 中为图像设置动画 5 秒?

javascript - 拖动和交换列表元素

javascript - angular.controller 是否总是采用匿名函数

html - translateY(-50%)后如何调整父div的高度

javascript - YouTube API - 根据 API 抓取缩略图的鼠标悬停更改 H1 标签?

javascript - css 切换开关 + 加载状态

javascript - 在继续同一 js 文件中的另一个代码之前添加两个脚本标签(在正文中)

javascript - Emotion CSS 宏有什么作用,我该如何使用它?

html - 如何在悬停时显示子菜单容器