您好,登錄后才能下訂單哦!
這篇文章主要介紹Angular.js數據綁定時自動轉義html標簽及內容的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
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 ></p>'; };
這樣可以實現html轉義,但是有個問題是style這種標簽會被angularJS認為是不安全的所以統統自動過濾掉,而為了保留這些就需要開啟非安全模式。
如何讓自動加載的數據轉義html標簽呢?實際上還有一種綁定方式:
html:
<div ng-repeat = "article in articles"> <div class="panel-heading"> <h5><b>{{article.title}}</b></h5> </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標簽的自動轉義。
以上是“Angular.js數據綁定時自動轉義html標簽及內容的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。