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 相关文章推荐
Mootools 1.2教程 Tooltips
Sep 15 Javascript
jQuery数据缓存功能的实现思路及简单模拟
May 27 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
Oct 22 Javascript
js与jQuery 获取父窗、子窗的iframe
Dec 20 Javascript
js中opener与parent的区别详细解析
Jan 14 Javascript
js实现进度条的方法
Feb 13 Javascript
利用JS实现页面删除并重新排序功能
Dec 09 Javascript
Vue数据驱动模拟实现5
Jan 13 Javascript
node操作mysql数据库实例详解
Mar 17 Javascript
JS设计模式之状态模式概念与用法分析
Feb 05 Javascript
layui实现table加载的示例代码
Aug 14 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
Aug 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
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
PHP处理postfix邮件内容的方法
2015/06/16 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
PHP会话控制实例分析
2016/12/24 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
jQuery图片播放8款精美插件分享
2013/02/17 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
jquery重复提交请求的原因浅析
2014/05/23 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
关于Mac下安装nodejs、npm和cnpm的教程
2018/04/11 NodeJs
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
JS实现吸顶特效
2020/01/08 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
js瀑布流布局的实现
2020/06/28 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
python字符串连接的N种方式总结
2014/09/17 Python
Python批量查询关键词微信指数实例方法
2019/06/27 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
python def 定义函数,调用函数方式
2020/06/02 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
餐饮管理自我介绍信
2014/01/15 职场文书
内勤主管岗位职责
2014/04/03 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
党员个人总结自评
2015/02/14 职场文书
学生会干部任命书
2015/09/21 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
科普 | 业余无线电知识-波段篇
2022/02/18 无线电