深究AngularJS中$sce的使用
為什么要要$sce?因?yàn)锳ngularJS里好些地方,比如路徑默認(rèn)是個(gè)字符串,不會(huì)認(rèn)為是路徑,從而訪問(wèn)不到我們需要的東西,那么我們就可以通過(guò)$sce告訴angualrJS這個(gè)路徑,這樣是很安全滴。它有以下幾種:
$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/>
無(wú)$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){
//第一種方式數(shù)據(jù)源
$scope.formData={
"name":"視頻",
"mediaUrl":"http://res.audiogroup.cn/res/upload/agx_ims_creative/audio/20160307/bpryk96.mp3"http://視頻路徑
};
$scope.sceControl = $sce.trustAsResourceUrl;//第一種處理方式
//第二種方式數(shù)據(jù)源
$scope.data={
"name":"視頻",
"url":"http://res.audiogroup.cn/res/upload/agx_ims_creative/audio/20160307/bpryk96.mp3"http://視頻路徑
};
$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/>處理過(guò)的:<button ng-click="look()">查看處理結(jié)果</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){
//未處理數(shù)據(jù)源
$scope.formData=[
{"name":"張春玲","htmlVal":"我是<span style='color:red;'>張春玲<span>"},
{"name":"sb","htmlVal":"我是<span style='color:red;'>sb<span>"}
];
//處理結(jié)果
$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>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
angular 基于ng-messages的表單驗(yàn)證實(shí)例
本篇文章主要介紹了angular 基于ng-messages的表單驗(yàn)證實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
Angularjs使用directive自定義指令實(shí)現(xiàn)attribute繼承的方法詳解
這篇文章主要介紹了Angularjs使用directive自定義指令實(shí)現(xiàn)attribute繼承的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了基于directive自定義指令實(shí)現(xiàn)attribute繼承的具體步驟與相關(guān)技巧,需要的朋友可以參考下2016-08-08
Angular實(shí)現(xiàn)一個(gè)簡(jiǎn)單的多選復(fù)選框的彈出框指令實(shí)例
下面小編就為大家?guī)?lái)一篇Angular實(shí)現(xiàn)一個(gè)簡(jiǎn)單的多選復(fù)選框的彈出框指令實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
Angular企業(yè)級(jí)開發(fā)——MVC之控制器詳解
本篇文章主要介紹了Angular企業(yè)級(jí)開發(fā)——MVC之控制器詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
AngularJS 雙向數(shù)據(jù)綁定詳解簡(jiǎn)單實(shí)例
這篇文章主要介紹了AngularJS 雙向數(shù)據(jù)綁定詳解簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-10-10
詳解如何將angular-ui的圖片輪播組件封裝成一個(gè)指令
本篇文章主要介紹了如何將angular-ui的圖片輪播組件封裝成一個(gè)指令 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
解決angular2 獲取到的數(shù)據(jù)無(wú)法實(shí)時(shí)更新的問(wèn)題
今天小編就為大家分享一篇解決angular2 獲取到的數(shù)據(jù)無(wú)法實(shí)時(shí)更新的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08

