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

首頁 > 編程 > JavaScript > 正文

詳解Angular.js數據綁定時自動轉義html標簽及內容

2019-11-19 16:58:30
字體:
來源:轉載
供稿:網友

angularJS在進行數據綁定時默認是以字符串的形式數據,也就是對你數據中的html標簽不進行轉義照單全收,這樣提高了安全性,防止html標簽的注入攻擊,但有時候需要,特別是從數據庫讀取帶格式的文本時,無法正常的顯示在頁面中。

而要對html進行轉義,則需要在數據綁定的html標簽中使用ng-bind-html屬性,該屬性依賴與$sanitize,也就是需要引入angular-sanitize.js文件,并在module定義時注入該服務ngSanitize。比如:

html:

<span ng-controller = "myCtr" ng-bind-html = "htmlStr"></span>

javascript:

function myCtr($scope){  $scope.htmlStr = '<p style="color:white;background:#f60;"></p>';};

這樣可以實現html轉義,但是有個問題是style這種標簽會被angularJS認為是不安全的所以統統自動過濾掉,而為了保留這些就需要開啟非安全模式。

如何讓自動加載的數據轉義html標簽呢?實際上還有一種綁定方式:

html:

<div ng-repeat = "article in articles">  <div class="panel-heading">    <h4><b>{{article.title}}</b></h4>  </div>  <div class="panel-body">    <article id="word-display" ng-bind-html="article.content | trustHtml">    </article>  </div></div>

javascript:

success(function(data){  $scope.articles = data;});myApp.filter('trustHtml',function($sce){  return function(input){    return $sce.trustAsHtml(input);  }});

其中$sce是angularJS自帶的安全處理模塊,$sce.trustAsHtml(input)方法便是將數據內容以html的形式進行解析并返回。將此過濾器添加到ng-bind-html所綁定的數據中,便實現了在數據加載時對與html標簽的自動轉義。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 古交市| 肇源县| 宁德市| 普安县| 应城市| 奉节县| 遵义市| 滦平县| 太湖县| 浮梁县| 渝北区| 汉阴县| 育儿| 铁力市| 柞水县| 新余市| 绍兴市| 儋州市| 营山县| 姜堰市| 全州县| 泰和县| 古丈县| 游戏| 沂水县| 威信县| 丹东市| 鄱阳县| 石家庄市| 长兴县| 韩城市| 景洪市| 南岸区| 青田县| 元谋县| 呼图壁县| 两当县| 吕梁市| 嘉善县| 库伦旗| 呼伦贝尔市|