国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解AngularJs中$sce與$sceDelegate上下文轉義服務

2024-05-06 15:09:30
字體:
來源:轉載
供稿:網友

一、嚴格的上下文轉義服務

嚴格的上下文轉義(SCE)是一種需要在一定的語境中導致AngularJS綁定值被標記為安全使用語境的模式。由用戶通過ng-bind-html綁定任意HTML語句就是這方面的一個例子。我們稱這些上下文轉義為特權或者SCE。

二、$sce

$sce 服務是AngularJs提供的一種嚴格上下文轉義服務。

下面代碼是簡化了的ngBindHtml實現(當然,這不是完整版ngBindHtml源碼):

 var ngBindHtmlDirective = ['$sce', function($sce) { return function(scope, element, attr) { scope.$watch($sce.parseAsHtml(attr.ngBindHtml), function(value) {  element.html(value || ''); }); }; }];

支持哪些信任的上下文類型?

$sce.HTML  將HTML代碼安全的綁定到應用程序中。

$sce.CSS  將CSS樣式代碼安全的綁定到應用程序中。

$sce.URL  將URL安全的綁定到應用程序中并保證其可用。比如(href,src)

$sce.RESOURCE_URL   將RESOURCE_URL安全的綁定到應用程序中并保證其可用。比如(ng-href,ng-src)

$sce.JS  將JAVASCRIPT代碼安全的綁定到應用程序中。

如何使$sce服務可用或者不可用?

 angular.module(“myApp”,[]).config([“$sceProvider”,function($sceProvider){ $sceProvider.enabled(true/false); }]);

使用:$sce();

方法:

isEnabled();

返回一個boolean,指示是否可啟用SCE。

parseAs(type,expression);

將Angular表達式轉換為一個函數。這類似$parse解析并且當表達式是常量時是相同的。否則,它將調用$sce.getTrusted(type,result)將表達式包裝。

type:在SCE的上下文的使用的結果的類型。

expression:被編譯的字符串表達式。

trustAs(type,value);

代表$sceDelegate.trustAs。

type:上下文中能安全的被使用的值,如url,resourceUrl,html,js和css。

value:需要被認為是安全或者值的信賴的值。

trustAsHtml(value);

$sceDelegate.trustAs($sce.HTML,value)的快捷方式。

value:被信任的值。

trustAsUrl(value);

$sceDelegate.trustAs($sce.URL,value)的快捷方式。

value:被信任的值。

trustAsResourceUrl(value);

$sceDelegate.trustAs($sce.RESOURCE_URL,value)的快捷方式。

value:被信任的值。

trustAsJs(value);

$sceDelegate.trustAs($sce.JS,value)的快捷方式。

value:被信任的值。

getTrusted(type,maybeTrusted);

代表$sceDelegate.getTrusted。因此,得到了$sce的結果。如果查詢的上下文類型是一個創造型的類型,則調用trustAs()并且返回原來提供的值。如果這個條件不滿足,則拋出一個異常。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 赤峰市| 广德县| 吉首市| 岱山县| 马公市| 夹江县| 马龙县| 台中县| 阿拉善右旗| 榆中县| 平昌县| 江山市| 洪泽县| 柳林县| 武威市| 梅河口市| 萝北县| 拉孜县| 江永县| 卓资县| 莱西市| 宣恩县| 东城区| 阳高县| 西昌市| 大厂| 江陵县| 仲巴县| 高要市| 磐石市| 色达县| 枣强县| 新平| 法库县| 中卫市| 潜山县| 北流市| 营山县| 永城市| 萍乡市| 台南县|