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自动打开页面上链接的实现代码
Sep 25 Javascript
jQuery对下拉框,单选框,多选框的操作
Feb 21 Javascript
Javascript实现简单二级下拉菜单实例
Jun 15 Javascript
一道关于JavaScript变量作用域的面试题
Mar 08 Javascript
js返回顶部实例分享
Dec 21 Javascript
基于Vue中点击组件外关闭组件的实现方法
Mar 06 Javascript
JavaScript引用类型RegExp基本用法详解
Aug 09 Javascript
vue中v-for通过动态绑定class实现触发效果
Dec 06 Javascript
jQuery简单实现根据日期计算星期几的方法
Jan 09 jQuery
vue使用el-upload上传文件及Feign服务间传递文件的方法
Mar 15 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
Jun 17 Javascript
Vue实现Header渐隐渐现效果的实例代码
Nov 05 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 memcache扩展的三种安装方法
2009/04/26 PHP
php连接函数implode与分割explode的深入解析
2013/06/26 PHP
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
以文件形式缓存php变量的方法
2015/06/26 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
PHP SESSION机制的理解与实例
2019/03/22 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
angular仿支付宝密码框输入效果
2017/03/25 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
python3模块smtplib实现发送邮件功能
2018/05/22 Python
python的pip安装以及使用教程
2018/09/18 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
项目建议书
2015/02/04 职场文书
工会文体活动总结
2015/05/07 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技