1

我正在尝试在 page.html 文件中查看一些数据来自 API,而这些数据只是通过 base64 进行的长文本编码,问题是我想解码 html 文件中的文本而不是 page.ts 文件所以我尝试了很多逻辑,但对我没有任何作用。HTML 文件中的示例:

  • {{item.text|| base64}}
  • {{item.text|| 解码URI组件}}
  • {{item.text|| atob}}
  • atob({{item.text}})

但没有任何效果。在 TS 页面内我尝试使用 decodeURIComponent(escape(window.atob(ielement.text))) 并且它正在工作,但我想从 html 页面

这是来自 API 的文本:aGVsbG8gd29ybGQh

提前致谢 ..

4

1 回答 1

0

您可以创建一个 Angular Pipe 来解码 base64 字符串,如下所示:

import { Pipe, PipeTransform } from '@angular/core';
/*
 * Usage:
 *   value | decodeBase64
 * Example:
 *   {{ 'aGFyZXNo' | decodeBase64 }}
 *
*/
@Pipe({name: 'decodeBase64'})
export class DecodeBase64Pipe implements PipeTransform {
  transform(value: string): string {

    return decodeURIComponent(escape(window.atob(value)));
  }
}

并在您的 HTML 中使用如下管道:

<p>Decoded text: {{'aGFyZXNo' | decodeBase64}}</p>

您需要在 app.module 文件中添加 Pipe 进行注册。

于 2019-01-20T09:43:15.693 回答