深究AngularJS中$sce的使用


Posted in Javascript onJune 12, 2017

为什么要要$sce?因为AngularJS里好些地方,比如路径默认是个字符串,不会认为是路径,从而访问不到我们需要的东西,那么我们就可以通过$sce告诉angualrJS这个路径,这样是很安全滴。它有以下几种:

$sce.trustAs(type,name);
$sce.trustAsUrl(value);
$sce.trustAsHtml(value);
$sce.trustAsResourceUrl(value);
$sce.trustAsJs(value);

1.trustAsResourceUrl

<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> 
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
  第一种方式:<br/>
  有$sce处理:<audio ng-src="{{sceControl(formData.mediaUrl)}}" controls="controls">您的浏览器不支持html5</audio><br/>
  无$sce处理:<audio ng-src="{{formData.mediaUrl}}" controls="controls">您的浏览器不支持html5</audio><br/><br/>

  第二种方式:<br/>
  <audio ng-src="{{data.url}}" controls="controls">您的浏览器不支持html5</audio>
</div>

<script>
  var app = angular.module('myApp', []);
  app.controller('myCtrl', function($scope,$sce){
    //第一种方式数据源
    $scope.formData={
      "name":"视频",
      "mediaUrl":"http://res.audiogroup.cn/res/upload/agx_ims_creative/audio/20160307/bpryk96.mp3"//视频路径
    };   
    $scope.sceControl = $sce.trustAsResourceUrl;//第一种处理方式

    //第二种方式数据源
    $scope.data={
      "name":"视频",
      "url":"http://res.audiogroup.cn/res/upload/agx_ims_creative/audio/20160307/bpryk96.mp3"//视频路径
    }; 
    $scope.data.url = $sce.trustAsResourceUrl($scope.data.url);//第二种处理方式

  });
</script>
</body>
</html>

2.trustAsHtml

<body>
<div ng-app="myApp" ng-controller="myCtrl">
  未处理的:
  <div ng-repeat="item in formData">
    {{item.name}} :{{item.htmlVal}}
  </div>

  <br/>处理过的:<button ng-click="look()">查看处理结果</button>
  <div ng-repeat="item in data">
    {{item.name}} :<p ng-bind-html = "item.htmlVal"></p>
  </div>
</div>

<script>
  var app = angular.module('myApp', []);
  app.controller('myCtrl', function($scope,$sce){
    //未处理数据源
    $scope.formData=[
      {"name":"张春玲","htmlVal":"我是<span style='color:red;'>张春玲<span>"},
      {"name":"sb","htmlVal":"我是<span style='color:red;'>sb<span>"}
    ]; 

    //处理结果
    $scope.look = function(){alert
      $scope.data=[
        {"name":"张春玲","htmlVal":"我是<span style='color:red;'>张春玲<span>"},
        {"name":"sb","htmlVal":"我是<span style='color:red;'>sb<span>"}
      ];
      for(var i=0;i<$scope.data.length;i++){
        $scope.data[i].htmlVal = $sce.trustAsHtml($scope.data[i].htmlVal);
      }
    };

  });
</script>
</body>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
非常棒的10款jQuery 幻灯片插件
Jun 14 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
Feb 03 Javascript
JavaScript中的splice()方法使用详解
Jun 09 Javascript
javascript获取本机操作系统类型的方法
Aug 13 Javascript
JavaScript原型及原型链终极详解
Jan 04 Javascript
使用jQuery制作基础的Web图片轮播效果
Apr 22 Javascript
jQuery实现邮箱下拉列表自动补全功能
Sep 08 Javascript
浅述节点的创建及常见功能的实现
Dec 15 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 jQuery
浅谈ECMAScript6新特性之let、const
Aug 02 Javascript
js控制随机数生成概率代码实例
Mar 21 Javascript
js this 绑定机制深入详解
Apr 30 Javascript
JS身份证信息验证正则表达式
Jun 12 #Javascript
用原生JS实现简单的多选框功能
Jun 12 #Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
Jun 12 #Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
Jun 12 #Javascript
AngularJS 异步解决实现方法
Jun 12 #Javascript
jquery+css实现侧边导航栏效果
Jun 12 #jQuery
angularjs实现上拉加载和下拉刷新数据功能
Jun 12 #Javascript
You might like
PHP控制网页过期时间的代码
2008/09/28 PHP
php mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
Laravel第三方包报class not found的解决方法
2019/10/13 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
google 搜索框添加关键字实现代码
2010/04/24 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
2013/11/26 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
Javascript中神奇的this
2016/01/20 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
党员群众路线承诺书
2014/05/20 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
2015年学校安全管理工作总结
2015/05/11 职场文书
妈妈别哭观后感
2015/06/08 职场文书
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技
python读取mat文件生成h5文件的实现
2022/07/15 Python
keepalived + nginx 实现高可用方案
2022/12/24 Servers