Angular2 - 用 html 插入字符串

Posted

技术标签:

【中文标题】Angular2 - 用 html 插入字符串【英文标题】:Angular2 - Interpolate string with html 【发布时间】:2016-11-11 18:07:50 【问题描述】:

如何使用 angular2 用 html 插入字符串。我知道在 angular 1.x 中有 $interpolate(templateString)(miniScope); 但我没有找到 angular2 相同的。

假设我有一个这样的模板:Hello my name is name

绑定就像name: "<strong>Pardeep</strong>"

所以我想要这样的结果

你好,我的名字是 Pardeep

Refer for angular1

for angular2 see here but i'm unable to understand clearly

有什么帮助吗?

【问题讨论】:

【参考方案1】:

您可以简单地使用[innerHTML] 指令来完成它。

http://plnkr.co/edit/6x04QSKhqbDwPvdsLSL9?p=preview

import Component, Pipe from '@angular/core'

@Component(
  selector: 'my-app',
  template: `
            Hello my name is <span [innerHTML]="myName"></span> 
  `,
)
export class AppComponent 

  myName='<strong>Pardeep</strong>';


更新:

我检查了它在 RC.1 发布后不能以这种方式工作。

假设要使其与RC.4一起使用,您可以使用DomSanitizationService,如下所示,

@Component(
  selector: 'my-app',

  template: `
    <div [innerHTML]="myCheckbox"></div>
  `,
)
export class AppComponent 

  dangerousUrl='<input type="checkbox">';

  constructor(sanitizer: DomSanitizationService) 

    this.myCheckbox= sanitizer.bypassSecurityTrustHtml(this.dangerousUrl);
  

http://plnkr.co/edit/Yexm1Mf8B3FRhNch3EMz?p=preview

【讨论】:

我知道,如果myName='&lt;input type="checkbox"&gt;'; 怎么办? 现在检查它是否适用于DomSanitizationService API。 innerHTML 仍然有效,除非您真的有,否则您不想信任 html...查看“内容安全”下的文档angular.io/docs/ts/latest/guide/…

以上是关于Angular2 - 用 html 插入字符串的主要内容,如果未能解决你的问题,请参考以下文章

用angular2编译html

使用angular2将HTML从服务器插入DOM(Angular2中的一般DOM操作)[重复]

如何在下拉angular2中获取标签字符串作为formControl值?

Angular2动态插入脚本标签

python3 插入 mysql 时内容带有特殊字符处理

python