深究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 相关文章推荐
Jquery cookie操作代码
Mar 14 Javascript
javascript的console.log()用法小结
May 31 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
Jan 31 Javascript
JavaScript中的值类型详细介绍
Dec 29 Javascript
JavaScript设计模式初探
Jan 07 Javascript
基于BootStarp的Dailog
Apr 28 Javascript
jQuery插件ajaxFileUpload使用实例解析
Oct 19 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
May 27 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
Oct 26 Javascript
详解Node.js读写中文内容文件操作
Oct 10 Javascript
JavaScript实现多球运动效果
Sep 07 Javascript
vue Cli 环境删除与重装教程 - 版本文档
Sep 11 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实现时间轴函数代码
2011/10/08 PHP
php中socket通信机制实例详解
2015/01/03 PHP
PHP中使用curl入门教程
2015/07/02 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
动态样式类封装JS代码
2009/09/02 Javascript
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
jQuery语法小结(超实用)
2015/12/31 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
详解vuex的简单使用
2018/03/12 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
Python语言的12个基础知识点小结
2014/07/10 Python
Python编程之序列操作实例详解
2017/07/22 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
Python----数据预处理代码实例
2019/03/20 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
自考生毕业自我鉴定
2013/10/10 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
销售主管竞聘书
2014/03/31 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
教师批评与自我批评(群众路线)
2014/10/15 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
2015年加油站工作总结
2015/05/13 职场文书
十八大观后感
2015/06/12 职场文书
JS实现简单九宫格抽奖
2022/06/28 Javascript