消毒管道后使用另一根管道

时间:2017-11-24 14:37:22

标签: angular

我需要从清理过的管道中获取200个字符。

现在我的代码看起来像:

<div class="description mt-3" [innerHTML]="body | sanitizeHtml">
  </div>

清理管道代码:

transform(content: any): any {
    return this.sanitizer.bypassSecurityTrustHtml(content);
  }

因此,我需要将从第一个管道(清理数据)获取的数据传递到另一个管道,如下所示:

<div class="description mt-3" [innerHTML]="body | sanitizeHtml | getFirst20Ch">
  </div>

但是当数据来自sanitizeHtml时,它没有字符串类型,并且在从getFirst20Ch管道进行sanitazing后我无法获得20个字符

1 个答案:

答案 0 :(得分:0)

bypassSecurityTrustHtml没有按照您的期望行事。

仅在内存中创建元素并添加HTML,然后使用textContentinnerText getter获取文本内容。

let div = document.createElement('div');
div.innerHTML = '<div><p><span>a</span>b</span><b>c</b><span>c</span></p></div>';
this.content = div.textContent;

并用

显示
<div>{{content | getFirst20Ch}}</div>

StackBlitz example

您当然可以将其实现为管道。