《精通AngularJS》读书笔记
1.默认情况下,AngularJS会对插值指令求值表达式中的HTML标记转义,这是为了防止HTML注入攻击
$scope.msg = 'Hello, <b>world<b>';
<p>{{msg}}</p>
2.可以用ng-bind-html-unsafe指令来关掉默认的HTML标签转义(不安全)
<p ng-bind-html-unsafe="msg"></p>
3.ng-bind-html指令,能够纯净化指定的HTML标签,同时允许其他标签被浏览器所解释,记得要额外包含源文件angular-sanitize.js文件,还有对ngSanitize模块声明
angular.module('expressionEscaping', ['ngSanitize'])
.controller('ExpressionEscapingCtrl', function($scope){
$scope.msg = 'Hello, <b>World</b>';
}])
在过滤器的执行结果中返回HTML标记,也许有诱惑力,但实践证明,输出HTML的过滤器不是一个好主意:1.需要绑定指令ngBindUnsafeHtml或ngBindHtml,语法冗长。2.web页面会受到HTML注入的潜在威胁。