1. 程式人生 > >關於angularJS自動轉義html標籤

關於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標籤的自動轉義。

方案二:

我們給模組新增依賴 'ngSanitize' ,

var app =angular.module('myApp',['ngSanitize']);
(需要鏈入angular-sanitize.min.js).然後使用ng-bind-html,$sanitize會自動對ng-bind-html繫結的值進行淨化.

*記住,$sanitize指令本身不會出現在js程式碼裡.直接使用ng-bind-html就行了.但如果這裡不給模組新增依賴ngSanitize,是會報錯的.


angularjs乾貨地址 : http://blog.csdn.net/column/details/angularjs-sunny1989.html