AngularJS表达式中的HTML内容

来源:互联网 发布:java生成两个构造函数 编辑:程序博客网 时间:2024/05/22 14:42

《精通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注入的潜在威胁。


0 0
原创粉丝点击