angular1.x 中的$sce/ng-bind-html用法

向作者致敬

问题提出

但在我们的项目当中会遇到这样的情况,后台返回的数据中带有各种各样的html标签
angularJs输出html的时候,浏览器并不解析这些html标签
我们用ng-bind-html这样的指令来绑定,浏览器中显示的还是html代码

解决方案

此时可以通过$sce服务把一些地址变成安全的、授权的链接…简单地说,就像告诉门卫,这个陌生人其实是我的好朋友,很值得信赖,不必拦截它!

解决方法1–过滤器

<body ng-app="myApp" ng-controller="myCtl">
    <div ng-bind-html="htmlContent | to_trusted">

    </div>
</body>
</html>
<script>
    var app = angular.module('myApp', []);
    app.controller('myCtl',['$scope', function($scope){
        $scope.htmlContent = '<h1 style="color: orange">wednesday</h1>';
    }]);
    app.filter('to_trusted', ['$sce', function ($sce) {
    return function (text) {
        return $sce.trustAsHtml(text);
  };
}]);
</script>

解决方法2

<body ng-app="myApp" ng-controller="myCtl">
    <div ng-bind-html="content">

    </div>
</body>
</html>
<script>
    var app = angular.module('myApp', []);
    app.controller('myCtl',['$scope','$sce', function($scope,$sce){
        $scope.content = $sce.trustAsHtml( '<h1 style="color: orange">wednesday</h1>' );
    }]);
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值