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 相关文章推荐
广告显示判断
Aug 31 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
Oct 24 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
Aug 07 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
Dec 06 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
Jun 21 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
May 02 Javascript
详解Angularjs 自定义指令中的数据绑定
Jul 19 Javascript
JavaScript闭包与作用域链实例分析
Jan 21 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
Aug 23 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
Feb 11 Javascript
js实现无缝轮播图
Mar 09 Javascript
浅谈vue2的$refs在vue3组合式API中的替代方法
Apr 18 Vue.js
详解基于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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
php 变量未定义等错误的解决方法
2011/01/12 PHP
分享一个超好用的php header下载函数
2014/01/31 PHP
初识JQuery 实例一(first)
2011/03/16 Javascript
仿新浪微博返回顶部的jquery实现代码
2012/10/01 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
2016/12/08 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
Node.js API详解之 zlib模块用法分析
2020/05/19 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
2020/03/13 Python
执行Python程序时模块报错问题
2020/03/26 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
幼儿园园长岗位职责
2013/11/26 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
总会计师岗位职责
2014/02/19 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
销售目标责任书
2014/07/23 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
留学推荐信怎么写
2015/03/26 职场文书
Python+tkinter实现高清图片保存
2022/03/13 Python