Как декодировать данные из API в Base64 в HTML-файл с использованием ионной 3

Я пытаюсь просмотреть внутри файла page.html некоторые данные, поступающие из API, и эти данные представляют собой только длинный текст, кодируемый с помощью base64, и проблема в том, что я хочу декодировать текст в файле html, а не в файле page.ts, поэтому я пробовал много логика для этого, но ничего не работает со мной. пример внутри HTML-файла:

  • {{Item.text || base64}}
  • {{Item.text || decodeURIComponent}}
  • {{Item.text || atob}}
  • atob ({{item.text}})

но ничего не работает. внутри страницы TS я попытался использовать decodeURIComponent(escape(window.atob(ielement.text))), и он работает, но я хочу с HTML-страницы

это текст из API: aGVsbG8gd29ybGQh

заранее спасибо..

1 ответ

Решение

Вы можете создать 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>

Вам нужно добавить Pipe в ваш файл app.module, чтобы зарегистрироваться.

Другие вопросы по тегам