詳解Angular.js數(shù)據(jù)綁定時自動轉(zhuǎn)義html標簽及內(nèi)容
angularJS在進行數(shù)據(jù)綁定時默認是以字符串的形式數(shù)據(jù),也就是對你數(shù)據(jù)中的html標簽不進行轉(zhuǎn)義照單全收,這樣提高了安全性,防止html標簽的注入攻擊,但有時候需要,特別是從數(shù)據(jù)庫讀取帶格式的文本時,無法正常的顯示在頁面中。
而要對html進行轉(zhuǎn)義,則需要在數(shù)據(jù)綁定的html標簽中使用ng-bind-html屬性,該屬性依賴與$sanitize,也就是需要引入angular-sanitize.js文件,并在module定義時注入該服務(wù)ngSanitize。比如:
html:
<span ng-controller = "myCtr" ng-bind-html = "htmlStr"></span>
javascript:
function myCtr($scope){
$scope.htmlStr = '<p style="color:white;background:#f60;"></p>';
};
這樣可以實現(xiàn)html轉(zhuǎn)義,但是有個問題是style這種標簽會被angularJS認為是不安全的所以統(tǒng)統(tǒng)自動過濾掉,而為了保留這些就需要開啟非安全模式。
如何讓自動加載的數(shù)據(jù)轉(zhuǎn)義html標簽?zāi)??實際上還有一種綁定方式:
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)方法便是將數(shù)據(jù)內(nèi)容以html的形式進行解析并返回。將此過濾器添加到ng-bind-html所綁定的數(shù)據(jù)中,便實現(xiàn)了在數(shù)據(jù)加載時對與html標簽的自動轉(zhuǎn)義。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- AngularJs定時器$interval 和 $timeout詳解
- Angular.js中定時器循環(huán)的3種方法總結(jié)
- AngularJS定時器的使用與移除操作方法【interval與timeout】
- Angularjs 雙向綁定時字符串的轉(zhuǎn)換成數(shù)字類型的問題
- angularjs定時任務(wù)的設(shè)置與清除示例
- AngularJS實現(xiàn)頁面定時刷新
- angular2倒計時組件使用詳解
- ionic+AngularJs實現(xiàn)獲取驗證碼倒計時按鈕
- AngularJS 支付倒計時功能實現(xiàn)思路
- Angular實現(xiàn)的簡單定時器功能示例
相關(guān)文章
AngularJS基礎(chǔ) ng-mouseenter 指令示例代碼
本文主要介紹AngularJS ng-mouseenter 指令,這里對ng-mouseenter 指令基礎(chǔ)資料做了詳細整理,并附代碼實例,有需要的小伙伴可以參考下2016-08-08
AngularJS中取消對HTML片段轉(zhuǎn)義的方法例子
這篇文章主要介紹了AngularJS中取消對HTML片段轉(zhuǎn)義的方法例子,在一些需要顯示HTML的地方,就要取消AngularJS的轉(zhuǎn)義,本文就介紹了這種方法,需要的朋友可以參考下2015-01-01
Angular 4環(huán)境準備與Angular cli創(chuàng)建項目詳解
Angular4.0來了,更小,更快,改動少,所以下面這篇文章主要給大家介紹了關(guān)于Angular 4環(huán)境準備與學(xué)會使用Angular cli創(chuàng)建項目的相關(guān)資料,文中給出了詳細的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。2017-05-05
AngularJS實現(xiàn)動態(tài)添加Option的方法
這篇文章主要介紹了AngularJS實現(xiàn)動態(tài)添加Option的方法,涉及AngularJS事件響應(yīng)及頁面元素動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-05-05

