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 相关文章推荐
用javascript实现的支持lrc歌词的播放器
May 17 Javascript
js动态添加事件并可传参数示例代码
Oct 21 Javascript
Javascript实现单例模式
Jan 24 Javascript
jQuery插件uploadify实现ajax效果的图片上传
Jun 18 Javascript
JavaScript程序中实现继承特性的方式总结
Jun 24 Javascript
BootStrap使用file-input插件上传图片的方法
Sep 05 Javascript
js判断手机号是否正确并返回的实现代码
Jan 17 Javascript
vue+springboot实现项目的CORS跨域请求
Sep 05 Javascript
对类Vue的MVVM前端库的实现代码
Sep 07 Javascript
vue中keep-alive,include的缓存问题
Nov 26 Javascript
Vue快速实现通用表单验证的示例代码
Jan 09 Javascript
js布局实现单选按钮控件
Jan 17 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
PHP数据类型之布尔型的介绍
2013/04/28 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
python中list列表的高级函数
2016/05/17 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
详解python中requirements.txt的一切
2017/03/03 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
python删除某个目录文件夹的方法
2020/05/26 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
澳大利亚家具商店:Freedom
2020/12/17 全球购物
实习教师自我鉴定
2013/09/27 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
活动总结怎么写
2014/04/28 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
如何才能写好调研报告?
2019/07/03 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
python3实现无权最短路径的方法
2021/05/12 Python
整理Python中常用的conda命令操作
2021/06/15 Python