首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Angular 2中使用ng-for将HTML字符串转换为真正的HTML元素?

如何在Angular 2中使用ng-for将HTML字符串转换为真正的HTML元素?
EN

Stack Overflow用户
提问于 2015-11-02 15:04:04
回答 3查看 42.2K关注 0票数 21

据我所知,在angular 1.x中,我可以使用$sce服务来满足如下需求

代码语言:javascript
复制
myApp.filter('trustAsHTML', ['$sce', function($sce){
  return function(text) {
    return $sce.trustAsHtml(text);
  };
}]);

在html文件中使用如下所示

代码语言:javascript
复制
{{ htmlString || trustAsHTML }}

在Angularjs2版本中,有没有像$sce这样的服务,或者一些管道,或者任何方法可以胜任这样的工作?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-02 19:07:39

在angular2中没有ng-includetrustAsHtmlng-bind-html或者类似的东西,所以你最好的选择就是绑定到innerHtml。显然,这使您可以接受所有类型的攻击,因此解析/转义内容由您决定,为此您可以使用管道。

代码语言:javascript
复制
@Pipe({name: 'escapeHtml', pure: false})
class EscapeHtmlPipe implements PipeTransform {
   transform(value: any, args: any[] = []) {
       // Escape 'value' and return it
   }
}

@Component({
    selector: 'hello',
    template: `<div [innerHTML]="myHtmlString | escapeHtml"></div>`,
    pipes : [EscapeHtmlPipe]
})
export class Hello {
  constructor() {
    this.myHtmlString = "<b>This is some bold text</b>";
  }
}

这是一个带有简单的html转义/解析的plnkr

我希望它能有所帮助:)

票数 29
EN

Stack Overflow用户

发布于 2016-11-30 05:05:36

我有同样的问题购买我要求解码HTML从后端和他们,你可以注入html到您的页面

代码语言:javascript
复制
// YOUR TS
@Component({
  selector: 'page',
  templateUrl: 'page.html'
})
export class Page {
  inject:any;
  constructor( ) { }

  ionViewDidLoad() {
    this.inject='your HTML code'

  }

}
代码语言:javascript
复制
// YOU HTML PAGE

<div [innerHTML]="inject"></div>

票数 4
EN

Stack Overflow用户

发布于 2019-12-13 18:36:03

您可以帮助的最佳解决方案如下所示:

代码语言:javascript
复制
<p [innerHTML]=your_response_which_is_string></p>

希望它能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33472297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档