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获取textarea中的光标位置
May 06 Javascript
js数组Array sort方法使用深入分析
Feb 21 Javascript
JavaScript中的this关键字介绍与使用实例
Jun 21 Javascript
jquery遍历数组与筛选数组的方法
Nov 05 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
Oct 17 Javascript
js和jquery分别验证单选框、复选框、下拉框
Dec 17 Javascript
原生js实现图片层叠轮播切换效果
Feb 02 Javascript
AngularJS+Bootstrap实现多文件上传与管理
Nov 08 Javascript
js实现一键复制功能
Mar 16 Javascript
Vue2.0如何发布项目实战
Jul 27 Javascript
javascript实现数字配对游戏的实例讲解
Dec 14 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
Sep 16 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
discuz7 phpMysql操作类
2009/06/21 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
javascript判断firebug是否开启的方法
2016/11/23 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
Python多线程和队列操作实例
2015/06/21 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
Jupyter加载文件的实现方法
2020/04/14 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
经典C++面试题一
2016/11/06 面试题
交通安全演讲稿
2014/01/07 职场文书
公司门卫岗位职责
2014/03/15 职场文书
重点工程汇报材料
2014/08/27 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
转正申请报告格式
2015/05/15 职场文书
千与千寻观后感
2015/06/04 职场文书
总经理年会致辞
2015/07/29 职场文书
导游词之阆中古城
2019/12/23 职场文书
用CSS3画一个爱心
2021/04/27 HTML / CSS
Vue vee-validate插件的简单使用
2021/06/22 Vue.js
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android
MySQL数据库查询之多表查询总结
2022/08/05 MySQL