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 相关文章推荐
js png图片(有含有透明)在IE6中为什么不透明了
Feb 07 Javascript
extjs ColumnChart设置不同的颜色实现代码
May 17 Javascript
javascript如何判断输入的url是否正确
Apr 11 Javascript
基于JQuery实现图片轮播效果(焦点图)
Feb 02 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
Jun 01 Javascript
JavaScript实现倒计时跳转页面功能【实用】
Dec 13 Javascript
基于JS实现翻书效果的页面切换样式
Feb 16 Javascript
Bootstrap风格的zTree右键菜单
Feb 17 Javascript
vue实现todolist单页面应用
Apr 11 Javascript
Vue.js 表单控件操作小结
Mar 29 Javascript
ES6的Fetch异步请求的实现方法
Dec 07 Javascript
vue图片上传本地预览组件使用详解
Feb 20 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实时显示输出
2008/10/02 PHP
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
PHP中header函数的用法及其注意事项详解
2016/06/13 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
window.onload使用指南
2015/09/13 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
jQuery Mobile页面返回不需要重新get
2016/04/26 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
hammer.js实现图片手势放大效果
2017/08/29 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
JS实现网页端猜数字小游戏
2020/03/06 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python自动化测试之连接几组测试包实例
2014/09/28 Python
Python ldap实现登录实例代码
2016/09/30 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
python距离测量的方法
2018/03/06 Python
pandas重新生成索引的方法
2018/11/06 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
python elasticsearch环境搭建详解
2019/09/02 Python
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
银行实习自我鉴定
2013/10/12 职场文书
技校教师求职简历的自我评价
2013/10/20 职场文书
后勤主管岗位职责
2014/03/01 职场文书
总经理工作职责范文
2014/03/14 职场文书
国企干部对照检查材料
2014/08/22 职场文书
Linux安装Docker详细教程
2022/07/07 Servers