Angular 4中如何显示内容的CSS样式示例代码


Posted in Javascript onNovember 06, 2017

前言

在开始本文的正文之前,我们先来看一下angular2中将带标签的文本输出在页面上的相关内容,为了系统性的防范XSS问题,Angular默认把所有值都当做不可信任的。 当值从模板中以属性(Property)、DOM元素属性(Attribte)、CSS类绑定或插值表达式等途径插入到DOM中的时候, Angular将对这些值进行无害化处理(Sanitize),对不可信的值进行编码。

h3>Binding innerHTML</h3>

<p>Bound value:</p>

<p
class="e2e-inner-html-interpolated">{{htmlSnippet}}</p>

<p>Result of binding to innerHTML:</p>

<p
class="e2e-inner-html-bound" [innerHTML]="htmlSnippet"></p>
[innerHTML]="htmlSnippet"

这个属性可以识别 HTML标签 但不识别标签中的属性值

发现问题

大家都知道Angular 中有 innerHTML 属性来设置要显示的内容,但是如果内容包含 CSS 样式,无法显示样式的效果。

比如:

public content: string = "<div style='font-size:30px'>Hello Angular</div>";

<p [innerHTML]="content"></p>

只会显示 Hello World ,字体不会是 30px,也就是 CSS 样式没有效果。

解决方案

自定义一个 Pipe 来对内容做转换。看下面代码。

写一个 HtmlPipe 类

import {Pipe, PipeTransform} from "@angular/core";
import {DomSanitizer} from "@angular/platform-browser";

@Pipe({
 name: "html"
})

export class HtmlPipe implements PipeTransform{

 constructor (private sanitizer: DomSanitizer) {

 }

 transform(style) {
 return this.sanitizer.bypassSecurityTrustHtml(style);
 }
}

在需要的模块里面引入管道 HtmlPipe

@NgModule({
 declarations: [
 HtmlPipe
 ]
})

在 innerHtml 中增加管道名字

<p [innerHTML]="content | html"></p>

这样就可以显示 content 的 CSS 样式。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
又一个小巧的图片预加载类
May 05 Javascript
走出JavaScript初学困境—js初学
Dec 29 Javascript
javascript模拟枚举的简单实例
Mar 06 Javascript
javascript实现仿百度图片的瀑布流加载效果
Apr 20 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
Nov 30 Javascript
Vue.js中兄弟组件之间互相传值实例
Jun 01 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 jQuery
详解vue中组件参数
Jul 09 Javascript
vue中实现点击变成全屏的多种方法
Sep 27 Javascript
JavaScript的一些小技巧分享
Jan 06 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
Jan 13 Vue.js
JS前端使用Canvas快速实现手势解锁特效
Sep 23 Javascript
详解基于vue-cli优化的webpack配置
Nov 06 #Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
Nov 06 #Javascript
js中apply与call简单用法详解
Nov 06 #Javascript
js实现简单数字变动效果
Nov 06 #Javascript
利用百度地图API获取当前位置信息的实例
Nov 06 #Javascript
原生js封装添加class,删除class的实例
Nov 06 #Javascript
Node.js实现发送邮件功能
Nov 06 #Javascript
You might like
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
2017/04/15 PHP
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
JavaScript中this详解
2015/09/01 Javascript
js获取当前日期时间及其它日期操作汇总
2016/03/08 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
js继承实现方法详解
2016/12/16 Javascript
基于vue-ssr服务端渲染入门详解
2018/01/08 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
Java 生成随机字符的示例代码
2021/01/13 Javascript
基于python实现微信模板消息
2015/12/21 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
python中dict()的高级用法实现
2019/11/13 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
教育科研先进个人材料
2014/01/26 职场文书
导师就业推荐信范文
2014/05/22 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
工作表扬信
2015/01/17 职场文书
放弃继承权公证书
2015/01/23 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
python - asyncio异步编程
2021/04/06 Python
python munch库的使用解析
2021/05/25 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python