Angular 2:如何将指令应用于已清理的 html/innerhtml
Angular 2: How can I apply directives to sanitized html/innerhtml
我正在开发一个应用程序,我从服务器获得 html 格式的响应。
我正在使用 DomSanitizer 的 bypassSecurityTrustHtml 并将经过消毒的 html 添加到我的组件 ().
我的问题是响应中的一些元素包含标记以指示 link 可以从元素构建,例如:
<div thisIsActuallyaLink linkParam1="foo" linkParam2="bar">clickHere</div>
我想创建一个应用于内部的指令html,但是当显示 html 时,它没有用我的指令编译...
如果有人想知道为什么转换 html 没有在服务器端完成:响应在多个应用程序中使用,并且 links 必须具有不同的相对 URL,具体取决于应用程序:-(
也许尝试使用 Pipe,如下所示:
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({ name: 'safeHTML' })
export class SafeHtml implements PipeTransform {
constructor(private sanitizer: DomSanitizer) { }
transform(html: string) {
return this.sanitizer.bypassSecurityTrustHtml(html)
}
}
比
[innerHtml]="htmlExample | safeHTML"
[innerHTML]="..."
根本不可能做到这一点。
您可以在运行时编译组件以获得动态 HTML.
的组件和指令
有关详细信息,请参阅 。
我正在开发一个应用程序,我从服务器获得 html 格式的响应。 我正在使用 DomSanitizer 的 bypassSecurityTrustHtml 并将经过消毒的 html 添加到我的组件 ().
我的问题是响应中的一些元素包含标记以指示 link 可以从元素构建,例如:
<div thisIsActuallyaLink linkParam1="foo" linkParam2="bar">clickHere</div>
我想创建一个应用于内部的指令html,但是当显示 html 时,它没有用我的指令编译...
如果有人想知道为什么转换 html 没有在服务器端完成:响应在多个应用程序中使用,并且 links 必须具有不同的相对 URL,具体取决于应用程序:-(
也许尝试使用 Pipe,如下所示:
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({ name: 'safeHTML' })
export class SafeHtml implements PipeTransform {
constructor(private sanitizer: DomSanitizer) { }
transform(html: string) {
return this.sanitizer.bypassSecurityTrustHtml(html)
}
}
比
[innerHtml]="htmlExample | safeHTML"
[innerHTML]="..."
根本不可能做到这一点。
您可以在运行时编译组件以获得动态 HTML.
有关详细信息,请参阅