angularJS绑定数据中对标签转义的处理二 与pre标签的使用
一、问题 默认情况下,angularJS绑定的数据为字符串文本,不会对其中包含的html标签进行转义生成格式化的文本。在实际工作时碰到接口返回的数据带有html格式时该如何处理。 二、解决办法
1、引入angular-sanitize.js文件,并在module定义时注入服务ngSanitize。(为了能使用ng-bind-html属性) var myApp = angular.module('myApp', ['ngAnimate']) 2、创建一个filter myApp.filter('trustHtml', function ($sce) {
return function (input) {
return $sce.trustAsHtml(input);
}
});
//$sce是angularJS自带的安全处理模块,$sce.trustAsHtml(input)方法便是将数据内容以html的形式进行解析并返回。 3、将此过滤器添加到ng-bind-html所绑定的数据中,便实现了在数据加载时对于html标签的自动转义。 <div ng-repeat="item in list" >
<div ng-bind-html="item.content |trustHtml"></div>
</div> 三、其他
本来到此,问题已经解决了。但是在实际运用中发现了另外一个小坑。某数据只在前端创建,在textarea里编辑完并保存后,从数据库里读出来的格式与创建时不一致。
后来发现是由于textarea里的换行是\n指令控制,上传数据即为\n格式,读到html里后,需要把\n转换为<br>,解决的办法依旧采用filter。 app.filter('ntobr', function(){
var filter = function(input){
return input.replace(/\n/g,"<\/br>").replace(/ /g," ");
};
return filter;
});
//此过滤器将textarea里的\n和空格替换为html可以识别的标签 <div ng-repeat="item in list" >
<div ng-bind-html="item.content | ntobr |trustHtml"></div>
</div>
//在绑定数据时只需要同时加入两个过滤器即可
四、也可以不转义\n 为<br>标签;
使用pre标签就可以显示 \n 的换行;功能;
<div ng-repeat="item in list" >
<pre ng-bind="item.content ></pre>
</div>
<pre>标签会超出文本框的内容;
解决方法;强制换行;
<pre style="white-space: pre-wrap; word-wrap: break-word;"></span>
或者超出部分隐藏;overflow:hidden;
angularJS绑定数据中对标签转义的处理二 与pre标签的使用的更多相关文章
- angularJS绑定数据中对标签转义的处理
一.问题 默认情况下,angularJS绑定的数据为字符串文本,不会对其中包含的html标签进行转义生成格式化的文本.在实际工作时碰到接口返回的数据带有html格式时该如何处理. 二.解决办法 1.引 ...
- 关于angularJS绑定数据时自动转义html标签
关于angularJS绑定数据时自动转义html标签 angularJS在进行数据绑定时默认是会以文本的形式输出,也就是对你数据中的html标签不进行转义照单全收,这样提高了安全性,防止了html标签 ...
- angularJS绑定数据时自动转义html标签
angularJS在进行数据绑定时默认是会以文本的形式输出,也就是对你数据中的html标签不进行转义照单全收,这样提高了安全性,防止了html标签中的注入攻击,但有些时候还是需要的,特别是从数据库读取 ...
- AngularJS绑定数据
绑定数据总共有三种方式1.{{}}最常用2.ngbind3.ng-model 主要用在input标签
- AngularJS之指令中controller与link(十二)
前言 在指令中存在controller和link属性,对这二者心生有点疑问,于是找了资料学习下. 话题 首先我们来看看代码再来分析分析. 第一次尝试 页面: <custom-directive& ...
- D3.js 选择元素和绑定数据/使用数据
选择元素和绑定数据是 D3 最基础的内容,本文将对其进行一个简单的介绍. 一.如何选择元素 在 D3 中,用于选择元素的函数有两个: d3.select():是选择所有指定元素的第一个 d3.sele ...
- HTML中pre标签的用法
我们经常会在要保持文本格式的时候使用pre标签,比如当我们要展示源代码的时候,只要放一个pre标签,然后把源代码直接复制,粘贴,然后在页面上就可以保持好格式.不会像放在其它标签里那样,把换行和空格都自 ...
- 聊一聊HTML <pre>标签
聊一聊HTML <pre>标签 我们经常会在要保持文本格式的时候使用pre标签,比如当我们要展示源代码的时候,只要放一个pre标签,然后把源代码直接复制,粘贴,然后在页面上就可以保持好格式 ...
- 从零开始学习html(二)认识标签(第一部分)——下
八.<blockquote>标签,长文本引用 <!DOCTYPE HTML> <html> <head> <meta http-equiv=&qu ...
随机推荐
- 浏览器 UA 判断
export const inBrowser = typeof window !== 'undefined' export const inWeex = typeof WXEnvironment != ...
- 用BeanUtilsDate类型值为空报错的解决方法
除BeanUtils外还有一个名为PropertyUtils的工具类,它也提供copyProperties()方法,作用与BeanUtils的同名方法十分相似,主要的区别在于后者提供类型转换功能,即发 ...
- js setInterval() 用法示例
Created by Marydon on 1.定义 语法:setInterval(param1,param2) param1 要调用的函数或要执行的代码串. param2 周期性调用param1 ...
- poj 2226 二分图 最小点覆盖 , 最大流
题目就是问怎样用最小的板覆盖全部的草地.能够横着放.也能够竖着放,同意一个草地放多个点. 建图方法就是 每一个横向的草地作为X,纵向连续的草地作为Y. X连接Y的边表示, 这里有他们的公共点 ...
- JSTL中c:forEach循环里的值的substr操作及对String操作的常用API
<c:forEach items="${dataList}" var="item" varStatus="itemStatus"> ...
- 【WebKit内核 CEF3 】 第一篇:下载分支代码并本地编译
关于CEF Chromium Embedded Framework 简单说就是 WebKit内核的 对外绑定. 当前主流浏览器内核 一.Trident内核代表产品Internet Explorer ...
- SpringBoot之自定义验证码
代码地址如下:http://www.demodashi.com/demo/14280.html 项目介绍 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控 ...
- LNMP的的编译安装全过程
一.对系统进行更新 yum update -y lsb_release -a 二.禁用SELINUX sed -i '/SELINUX/s/enforcing/disabled/' /etc/seli ...
- HDUOJ---大菲波数
大菲波数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序
.NET 跨平台RPC框架DotNettyRPC DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...