您好,登錄后才能下訂單哦!
這篇文章給大家介紹AngularJS中ng-bind-html指令的功能是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
前言
在為html標簽綁定數據的時,如果綁定的內容是純文本,你可以使用{{}}或者ng-bind。但在為html標簽綁定帶html標簽的內容的時候,angularjs為了安全考慮,不會將其渲染成html,而是將其當做文本直接在頁面上展示。
先來看一個例子
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="js/angular.min.js"></script> <script> angular.module("myapp", []).controller("MyController", function ($scope) { $scope.content = "<h2>Hello world.</h2>"; $scope.txt = "Hello txt world"; }); </script> </head> <body ng-app="myapp"> <div ng-controller="MyController"> {{content}} <div ng-bind="content"></div> </div> </body> </html>
輸出
ng-bind-html指令
<div ng-bind-html="content"></div>
這時就會出現安全的錯誤,如圖:
但可以通過引入下面的模塊,自動檢測html的內容是否安全
<script src="http://apps.bdimg.com/libs/angular.js/1.5.0-beta.0/angular-sanitize.min.js"></script> <script> angular.module("myapp", ["ngSanitize"]).controller("MyController", function ($scope) { $scope.content = "<h2>Hello world.</h2>"; $scope.txt = "Hello txt world"; }); </script>
這時刷新預覽
所以
ng-bind-html 指令是通一個安全的方式將內容綁定到 HTML 元素上。
當你想讓 AngularJS 在你的應用中寫入 HTML,你就需要去檢測一些危險代碼。通過在應用中引入 "angular-santize.js" 模塊,使用 ngSanitize 函數來檢測代碼的安全性。 in your application you can do so by running the HTML code through the ngSanitize function.
另外一種處理方式
通過自定義過濾器,將帶html標簽的內容都當成安全的進行處理。
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="js/angular.min.js"></script> <!--<script src="http://apps.bdimg.com/libs/angular.js/1.5.0-beta.0/angular-sanitize.min.js"></script>--> <script> angular.module("myapp", []).controller("MyController", function ($scope) { $scope.content = "<h2>Hello world.</h2>"; $scope.txt = "Hello txt world"; }).filter("safeHtml", function ($sce) { return function (input) { //在這里可以對加載html渲染后進行特別處理。 return $sce.trustAsHtml(input); }; }); </script> </head> <body ng-app="myapp"> <div ng-controller="MyController"> {{content}} <div ng-bind="content"></div> <!--<div ng-bind-html="content"></div>--> <div ng-bind-html="content|safeHtml"></div> </div> </body> </html>
關于AngularJS中ng-bind-html指令的功能是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。