【问题标题】:Why is ng-bind-html not displaying anything?为什么 ng-bind-html 不显示任何内容?
【发布时间】:2015-03-08 23:02:44
【问题描述】:

我正在显示一个包含 HTML 代码的字符串:

<div style="font-size: 14px" ng-bind="currentBook.description"></div>

让它显示 HTML 代码而不是解释元素:

当我使用ng-bindng-bind-unsafe 时,它什么也没有显示。

如何获取要解析的 HTML?

附录

我添加了对 sanitize 的引用,但 ng-bindng-bind-unsafe 仍然没有显示任何内容:

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular-route.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular-sanitize.js"></script>

好的,我添加了 ngSanitize var app = angular.module('app', ['ngSanitize']);,现在它可以工作了。

【问题讨论】:

    标签: angularjs ng-bind-html


    【解决方案1】:

    您好像错过了ngSanitize,请看下面的演示

    你可以在这里找到更多

    https://docs.angularjs.org/api/ngSanitize/service/$sanitize

    var app = angular.module('app', ['ngSanitize']);
    
    app.controller('firstCtrl', function($scope, $sce) {
      $scope.currentBook = {
        description: "<p>some description</p>"
    
      };
    });
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular-sanitize.js"></script>
    
    <body ng-app="app">
      <div ng-controller="firstCtrl">
        <div style="font-size: 14px" ng-bind-html="currentBook.description"></div>
      </div>
    </body>

    【讨论】:

    • 谢谢。完美运行。
    【解决方案2】:

    调用申请

        $scope.$apply(function () {
                $scope.currentBook.description = $sce.trustAsHtml(html);
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-29
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 2021-04-10
      相关资源
      最近更新 更多