51

我已经设置了一个转发器,只要其中没有 html,就可以获取要显示的数据。

我已经包含angular-sanitize.js并尝试使用ng-bind-html

但是跨度内没有显示任何内容,仅在ng-bind-html属性内显示。所以看起来 sanitize 不起作用,

我读到这需要添加到应用程序依赖项中,但不确定在哪里这样做。

我刚刚在 Angular 网站上完成了 tut,所以现在只设置了一个非常基本的控制器。

4

5 回答 5

125
  1. 您需要包含 angular-sanitize.js http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular-sanitize.js

  2. 将“ ngSanitize ”添加到您的模块依赖项中

    var myApp = angular.module('myApp', ['ngSanitize']);

  3. 不要{{}}在属性中使用

    <h1 ng-bind-html="item.title"></h1>

  4. 不要使用$sce.trustAsHtml()

于 2013-03-22T20:39:06.040 回答
7

我对此的解决方案是从这里下载 js 文件

http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular-sanitize.js

我一直在使用我在 angular git repo 中找到的那个,

于 2013-02-07T09:17:11.210 回答
2

我遇到了类似的问题,但我的有点奇怪。只有输入标签未呈现,而其他所有内容包括

<h3></h3>
<em></em> 

做过。几个小时后,我意识到除了

angular-sanitize.min.js 

我需要添加

textAngular-sanitize.min.js

在输入标签起作用之前到我的项目。这真的很令人沮丧,所以我希望这可以帮助任何处于类似情况的人

于 2016-01-11T18:35:12.523 回答
1

使用指令时遇到此问题,解决方案未在代码中使用“替换”。

`ng-html-bind' 被用在 templateUrl 视图中的一个 div 上

appDirectives.directive('helpText', [function () {
return {
    restrict: 'E',
    //replace: true, // With this uncommented it does not work!
    scope: {
        displayText: '='
    },
    templateUrl: '/web/form/helptext',
    link: function (scope) {

    }

};
}]);
于 2017-12-12T12:49:16.410 回答
0

我的解决方案与 Seglespaan 正好相反。这是使用 Angular Sanitize 的 Bower 版本。

bower install angular-sanitize

https://github.com/angular/bower-angular-sanitize

于 2015-11-02T04:53:54.243 回答