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 相关文章推荐
基于jquery的自定义鼠标提示效果 jquery.toolTip
Nov 14 Javascript
Js-$.extend扩展方法使方法参数更灵活
Jan 15 Javascript
现如今最流行的JavaScript代码规范
Mar 08 Javascript
JS实现网页滚动条感应鼠标变色的方法
Feb 26 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
Jul 12 Javascript
两行代码轻松搞定JavaScript日期验证
Aug 03 Javascript
JS正则表达式验证密码格式的集中情况总结
Feb 23 Javascript
微信小程序中顶部导航栏的实现代码
Mar 30 Javascript
vue proxyTable 接口跨域请求调试的示例
Sep 12 Javascript
AngularJS的$location使用方法详解
Oct 19 Javascript
微信小程序使用npm支持踩坑
Nov 07 Javascript
vue将文件/图片批量打包下载zip的教程
Oct 21 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下MAIL的另一解决方案
2006/10/09 PHP
我的论坛源代码(二)
2006/10/09 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
javascript事件问题
2009/09/05 Javascript
jquery select下拉框操作的一些说明
2010/04/02 Javascript
jQuery学习总结之元素的相对定位和选择器(持续更新)
2011/04/26 Javascript
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
2020/02/12 Javascript
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
Python中计算三角函数之cos()方法的使用简介
2015/05/15 Python
使用DataFrame删除行和列的实例讲解
2018/04/08 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
python plotly绘制直方图实例详解
2019/07/22 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
2021/02/19 Python
详解px单位html5响应式方案
2018/03/08 HTML / CSS
班组长安全生产职责
2013/12/16 职场文书
房屋委托书范本
2014/04/04 职场文书
离职证明标准格式
2014/09/15 职场文书
电影地道战观后感
2015/06/04 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书