Angular4如何处理接口处获取到的带样式的HTML

发布于 2022-09-06 09:42:15 字数 425 浏览 6 评论 0

  1. 问题描述:

我从京东万象的新闻数据接口里面获取到一段带有css样式的HTML,通过Angular4的@ViewChild和 ElementRef转义处理后,能够在页面正常显示,但是现在全局(style.css)中加了一个font-size:0属性后之后,就无论如何都无法显示出来。调试时,只要把这个属性取消掉,就可以正常显示。无法知道是什么原因,这个属性必须要有,不能删掉。我试过定义一个Pipe,专门对HTML的样式做转换,但是这个只能用于被加载在angular的template上的HTML,我这个是动态获取的,没有在Template上,所以没什么用。

  1. 难点:

1、为什么动态获取到的内容默认使用font-size:0的全局属性,局部定义甚至动态加上css样式都不成功?
2、怎样将获取到的HTML变成angular的Template?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧梦荧光笔 2022-09-13 09:42:15

解决办法一:参考Angular里面的抽象类 Renderer2,里面提供了操作DOM的方法。

clipboard.png
解决办法二:在该组件下的.scss文件中加一个前缀为/deep/的元素选择器,即可。
解决办法三:定义一个管道类,专门处理带样式的HTML不能正常显示的问题。(此处不适合这种方式)

苍风燃霜 2022-09-13 09:42:15

在你这个组件的元数据对象里面加上这个配置encapsulation: ViewEncapsulation.Native,阻止全局的样式进入你这个组件,应该就能解决你的问题了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文